2 条题解
-
2曾扬洋 (2022ts280) LV 9 @ 2023-5-2 20:16:23
#include <iostream> #include <cstring> #include <queue> using namespace std; const int n = 5; char a[n][n]; char g[n][n]; void click(int x,int y) { if(x>0) a[x-1][y] ^=1; if(y>0) a[x][y-1] ^=1; if(x<4) a[x+1][y] ^=1; if(y<4) a[x][y+1] ^=1; a[x][y] ^= 1; } int read() { char c; c = getchar(); int ans = 0; while(c>='0'&&c<='9') { ans = ans*10+ (c-'0'); c = getchar(); } return ans; } int main() { int m; cin>>m; while(m--) { for(int i=0;i<5;i++) cin>>a[i]; memcpy(g,a,sizeof(a)); int minn = 30; for(int i=0;i<32;i++) { int ans = 0; for(int j=0;j<5;j++) if(i&(1<<j)) { click(0,j); ans++; } for(int j=0;j<4;j++) { for(int k=0;k<5;k++) { if(a[j][k] == '0') { click(j+1,k); ans++; } } } bool flag = true; for(int j=0;j<5;j++) { if(a[4][j] == '0') { flag = false; break ; } } if(flag) minn = min(minn,ans); memcpy(a,g,sizeof(a)); } if(minn > 6) cout<<-1<<endl; else cout<<minn<<endl; } return 0; }
-
12023-4-27 21:34:59@
#include<bits/stdc++.h> using namespace std; const int n = 5; char a[n][n]; char g[n][n]; void click(int x,int y) { if(x>0) a[x-1][y] ^=1; if(y>0) a[x][y-1] ^=1; if(x<4) a[x+1][y] ^=1; if(y<4) a[x][y+1] ^=1; a[x][y] ^= 1; } int read() { char c; c = getchar(); int ans = 0; while(c>='0'&&c<='9') { ans = ans*10+ (c-'0'); c = getchar(); } return ans; } int main() { int m; cin>>m; while(m--) { for(int i=0;i<5;i++) cin>>a[i]; memcpy(g,a,sizeof(a)); int minn = 30; for(int i=0;i<32;i++) { int ans = 0; for(int j=0;j<5;j++) if(i&(1<<j)) { click(0,j); ans++; } for(int j=0;j<4;j++) { for(int k=0;k<5;k++) { if(a[j][k] == '0') { click(j+1,k); ans++; } } } bool flag = true; for(int j=0;j<5;j++) { if(a[4][j] == '0') { flag = false; break ; } } if(flag) minn = min(minn,ans); memcpy(a,g,sizeof(a)); } if(minn > 6) cout<<-1<<endl; else cout<<minn<<endl; } return 0; }
- 1
信息
- ID
- 8
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 2
- 标签
- 递交数
- 245
- 已通过
- 143
- 上传者