博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【枚举思考题】poj 2965 The Pilots Brothers' refrigerator
阅读量:629 次
发布时间:2019-03-14

本文共 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/

你可能感兴趣的文章