关于读不进去,这如何是好
  • 板块学术版
  • 楼主mot1ve
  • 当前回复8
  • 已保存回复8
  • 发布时间2020/5/11 12:41
  • 上次更新2023/11/7 02:40:13
查看原帖
关于读不进去,这如何是好
250699
mot1ve楼主2020/5/11 12:41

#include <bits/stdc++.h>
using namespace std;
int ans=0,res=0x3f3f3f3f,n;
int a[10][10],b[10][10];
int main()
{
	cin>>n;
	while(n--)
	{
		getchar();
		for(int i=1;i<=5;i++)
        {
            for(int j=1;j<=5;j++)
            {
                char ch=getchar();
                b[i][j]=ch-'0';
            }
            getchar();
        }
		for(int i=0;i<=(1<<5);i++)//枚举第一行的32种情况
		{
			for (int j=1;j<=5;j++)
            {
                for (int k=1;k<=5;k++)
                {
                    a[j][k]=b[j][k];	
				}
            }			
			int ans=0;
		    for(int j=1;j<=5;i++) 
		    {
			    if(i>>(j-1)&1)
			    {
				   ans++;
				   a[1][j-1]^=1;
				   a[1][j+1]^=1;
				   a[1][j]^=1;
				   a[2][j]^=1;
			    }
		    }
		    for(int j=1;j<=4;j++)
		    {
		    	for(int k=5;k>=1;k--)
		    	{
		    		if(!a[j][k])
		    		{
		    			ans++;
		    			a[j][k]^=1;
		    			a[j+1][k]^=1;
		    			a[j+1][k-1]^=1;
		    			a[j+1][k+1]^=1;
		    			a[j+2][k]^=1;
					}
				}
			}
			bool ok=true;
			for(int j=1;j<=5;j++)
			{
				for(int k=1;k<=5;k++)
				{
					if(!a[j][k])
					{
						ok=false;
					}
				}
			}
			if(ok)
			{
				res=min(res,ans);
			}
		} 
		if(res>6)
		{
			cout<<-1;
		}
		else cout<<res;
		res=0x3f3f3f3f;
		puts("");
	}
	return 0;
}
2020/5/11 12:41
加载中...