?
题意:有一个5*6的矩阵,每个位置都表示按钮和灯,1表示亮,0表示灭。每当按下一个位置的按钮,它和它周围灯的状态全部翻转(题目中给出如何影响),问在这样的一个方阵中按下哪些按钮可以把整个方阵都变成灭的,这时1表示按了,0表示没按。
#include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; const int inf=0x3f3f3f3f; const double pi= acos(-1.0); const double esp=1e-6; const int MAXN=40; int aug[MAXN][MAXN]; int x[MAXN]; int m,n; int dx[]= {0,0,1,0,-1}; int dy[]= {0,1,0,-1,0}; int Gauss() { int i,j; int row,col,max_r; int tmp; for(row=0,col=0; row abs(aug[max_r][col])) max_r=i; } if(max_r!=row) { for(j=row; j =0; i--) { x[i]=aug[i][n]; for(j=i+1; j =0&&x<5&&y>=0&&y<6) { aug[i*6+j][x*6+y]=1; } } Gauss(); printf(PUZZLE #%d,icase++); for(i=0; i<30; i++) { if(i%6!=0) printf( %d,x[i]); else printf( %d,x[i]); } puts(); } return 0; }