超级暴力tle求解
查看原帖
超级暴力tle求解
1271572
Moxiang_Terry楼主2025/7/3 21:05

只有一个疑问:

预估时间复杂度: O(n3)×mO(n^3)\times m

但是 n,m<50n,m<50 , 所以时间复杂度最大是 O(6250000)<108O(6250000)<10^8

不知道为什么会 tle

有没有大佬解释一下谢谢

code :

#include<bits/stdc++.h>
using namespace std;
#define zwx return
#define code 0
const int N = 50;
int n,m,sum,ans=114514;
char a[N][N];

int main(){
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)cin>>a[i];
	for(int i=2;i<n;i++){//i指下一种颜色从第i行开始
		for(int j=i+1;j<=n;j++){
			sum=0;
			for(int x=1;x<i;x++)
				for(int y=0;y<m;y++)
					if(a[x][y]!='W')++sum;//计算要涂颜色的次数(白)
			for(int x=i;x<j;x++)
				for(int y=0;y<m;y++)
					if(a[x][y]!='B')++sum;//(蓝)
			for(int x=j;x<=n;x++)
				for(int y=0;y<m;y++)
					if(a[x][y]!='R')++sum;//(红)
			if(sum<ans)ans=sum;
		}
	}
	printf("%d",ans);
    zwx code ;
	return 0;
}
2025/7/3 21:05
加载中...