題目鏈接:hdu 1760 A New Tetris Game
題意:
給你一個矩陣,0表示可以放格子,現在給你2*2的格子,lele先放,問是否能贏。
題解:
爆搜。具體看代碼


1 #include<bits/stdc++.h> 2 #define F(i,a,b) for(int i=a;i<=b;++i) 3 4 char mp[60][60]; 5 int n,m; 6 7 int find() 8 { 9 F(i,1,n-1)F(j,1,m-1) 10 { 11 if(mp[i][j]=='1'||mp[i][j+1]=='1'||mp[i+1][j]=='1'||mp[i+1][j+1]=='1')continue; 12 mp[i][j]='1',mp[i][j+1]='1',mp[i+1][j]='1',mp[i+1][j+1]='1'; 13 int tmp=find(); 14 mp[i][j]='0',mp[i][j+1]='0',mp[i+1][j]='0',mp[i+1][j+1]='0'; 15 if(!tmp)return 1;//如果后繼有一個必敗點,則這個局面必贏 16 } 17 return 0;//如果后繼一個必敗點都沒有,則這個局面必輸 18 } 19 20 int main(){ 21 while(~scanf("%d%d",&n,&m)) 22 { 23 F(i,1,n)scanf("%s",&mp[i][1]); 24 puts(find()?"Yes":"No"); 25 } 26 return 0; 27 }
?