本文共 902 字,大约阅读时间需要 3 分钟。
题目链接:
题目大意:‘-’ 为open, ‘+’为close,一个动作同时改变一列一排,让16个把手全为‘-’成功。 思路:以后看到这样的枚举题目,一定注意变动的特点。这题,我们发现如果把一个十字的数都做一次动作,改变的只是中间的数。 那么就这样呗。 ac代码:#include#include #include #include #include #include #include using namespace std;#define INF 0x3f3f3f#define PI acos(-1.0)#define MAX 200110#define mod 1000000007int n,m;char p[5][5];int num[5][5];int main(){ while(~scanf("%s",p[0])) { for(int i = 1; i < 4; i++) scanf("%s",p[i]); for(int i = 0; i < 4; i++) { for(int j = 0; j < 4; j++) { if(p[i][j] == '+') { for(int k = 0; k < 4; k++) { num[i][k]++; num[k][j]++; } num[i][j]--; } } } int sum = 0; for(int i = 0; i < 4; i++) { for(int j = 0; j < 4; j++) { num[i][j] = num[i][j] % 2; if(num[i][j] == 1) sum++; } } printf("%d\n",sum); for(int i = 0; i < 4; i++) { for(int j = 0; j < 4; j++) { if(num[i][j] == 1) printf("%d %d\n",i+1,j+1); } } } return 0;}
转载地址:http://ozaoz.baihongyu.com/