1 solutions

  • 0
    @ 2025-12-27 9:42:17
    
    #include<bits/stdc++.h>
    using namespace std;
    int a[7][7];
    void push(int i,int j) {
    	a[i][j]=1-	a[i][j];
    	a[i][j+1]=1-	a[i][j+1];
    	a[i][j-1]=1-	a[i][j-1];
    	a[i+1][j]=1-	a[i+1][j];
    	a[i-1][j]=1-	a[i-1][j];
    }
    int kaobei[7][7];
    int main() {
    	int n ;
    	cin>>n;
    	int zongshu=0;
    	while(n--) {
    		char aa[6];
    		for(int i=1; i<=5; i++) {
    			cin>>aa;
    			for(int j=1; j<=5; j++) {
    
    				kaobei[i][j]=aa[j-1]-'0';
    			}
    		}
    		for(int i=1; i<=5; i++) {
    			for(int j=1; j<=5; j++) {
    
    				a[i][j]=kaobei[i][j];
    			}
    		}
    		int counter=0;
    //	cout<<"aaa"<<endl;
    		int minv=50;
    		for(int i=1; i<=32; i++) {
    			for(int ii=1; ii<=5; ii++) {
    
    				for(int ji=1; ji<=5; ji++) {
    
    					a[ii][ji]=kaobei[ii][ji];
    				}
    			}
    			counter=0;
    			//	cout<<i<<endl;
    			for(int j=0; j<=4; j++) {
    
    				if((i>>j)&1) {
    					push(1,j+1);
    					counter++;
    				}
    			}
    			//	cout<<endl;
    			/*
    					for(int ii=1;ii<=4;ii++)
    				{
    						for(int jj=1;jj<=5;jj++)
    					{
    			    	cout<<a[ii][jj];
    					}
    					cout<<endl;
    
    				}
    				*/
    			for(int ii=1; ii<=4; ii++) {
    				for(int jj=1; jj<=5; jj++) {
    					if(a[ii][jj]==0) {
    						push(ii+1,jj);
    						counter++;
    					}
    				}
    			}
    			//	cout<<counter<<endl;
    			for(int ii=1; ii<=5; ii++) {
    				if(a[5][ii]==0) {
    					counter=80;
    				}
    			}
    			if(counter<=6)
    				minv=min(counter,minv);
    		}
    		if(minv<=6) {
    			cout<<minv<<endl;
    		} else {
    			cout<<-1<<endl;
    		}
    	}
    }
    
    
    • 1

    Information

    ID
    1375
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    (None)
    Tags
    (None)
    # Submissions
    0
    Accepted
    0
    Uploaded By