玄关 求调
查看原帖
玄关 求调
902058
LX_cpp楼主2025/1/9 21:29
#include<bits/stdc++.h>
using namespace std;
int n,mp[6][6],y[6][6],ans;
char p[5];
int main(){
	cin>>n;
	while(n){
		ans=1e9;
		for(int i=1;i<=5;i++){
			cin>>p;
			for(int j=0;j<5;j++){
				mp[i][j+1]=p[j]-'0';
				y[i][j+1]=mp[i][j+1];
			}
		}	
		for(int i=0;i<=31;i++){
			int cnt=0;
			int m=i;
			int l[6]={0,0,0,0,0,0},sum=0;
			while(m>0){
				if(m%2)l[++sum]=1;
				else l[++sum]=0;
				m>>=1;
			}
			for(int j=5;j>=1;j--){
				if(l[j]==1){
					mp[1][j]=(mp[1][j]+1)%2;
					mp[1][j+1]=(mp[1][j+1]+1)%2;
					mp[1][j-1]=(mp[1][j-1]+1)%2;
					mp[2][j]=(mp[2][j]+1)%2;
					cnt++;
				}
			}
			for(int i=2;i<=5;i++){
				for(int j=1;j<=5;j++){
					if(mp[i-1][j]==0){
						mp[i-1][j]=(mp[i-1][j]+1)%2;
						mp[i+1][j]=(mp[i+1][j]+1)%2;
						mp[i][j]=(mp[i][j]+1)%2;
						mp[i][j-1]=(mp[i][j-1]+1)%2;
						mp[i][j+1]=(mp[i][j+1]+1)%2;
						cnt++;
					}
				}
			}
			bool chk=true;
			for(int i=1;i<=5;i++){
				for(int j=1;j<=5;j++){
					if(!mp[i][j]){
						chk=false;
					}
					mp[i][j]=y[i][j];
				} 
			}
			if(chk){
				ans=min(cnt,ans);
			}
		}	
		if(ans>6){
			cout<<-1<<endl;
		}else{	
			cout<<ans<<endl;
		}
		n--;
	}
}


acwing能过 acwing能过

https://cdn.luogu.com.cn/upload/image_hosting/nq8yzm4p.png

洛谷过不了

奇怪了

2025/1/9 21:29
加载中...