你是一个一个一个帮我调代码的神犇啊啊啊
查看原帖
你是一个一个一个帮我调代码的神犇啊啊啊
566289
RP_INT_MAX楼主2023/2/24 21:13

不用在意标题(

怀疑是输入的问题,但试了 cingetchar 等方式读入均存在 WA 测试点。

#include <cstdio>
#include <bitset>
#define for1(i,a,b) for(int i=(a);i<=(b);++i)
#define for2(i,a,b) for(int i=(a);i>=(b);--i)
using namespace std;
const int N=1010;
typedef bitset<N> BS;
int n,m,ans=1145141919;
BS a[N],b;
inline void check(BS x) {
	int cnt=0;
	for1(i,0,n-1) {
		int tmp=(a[i]^x).count();
		cnt+=min(tmp,n-tmp);
	}
	return ans=min(ans,cnt),void();
}
int main () {
	scanf("%d%d",&n,&m);
	for1(i,0,n-1) for1(j,0,n-1) {
		char ch=getchar();
		while(ch!='o'&&ch!='x') ch=getchar();
		a[i][j]=(ch=='o');
	}
	for1(i,0,n-1) check(a[i]);
	for1(i,0,n-1) b[i]=b[i]^1,check(b),b[i]=b[i]^1;
	puts(ans>m?"NE\n":"DA\n");
	return 0;
}
2023/2/24 21:13
加载中...