poj2965 The Pilots Brothers' refrigerator
生活随笔
收集整理的這篇文章主要介紹了
poj2965 The Pilots Brothers' refrigerator
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
2017-10-5
解答
直接枚舉即可代碼
#include<iostream> using namespace std;const int N = 4; char x[N+1][N+1],y[N+1][N+1]; int z[N+1][N+1]; int s; bool f=false;void set(int p,int q){for (int i=1;i<=N;i++){if (x[i][q]=='-') x[i][q]='+';else x[i][q]='-';if (x[p][i]=='-') x[p][i]='+';else x[p][i]='-';}if (x[p][q]=='+') x[p][q]='-';else x[p][q]='+'; }void init(){int i,j;for (i=1;i<=N;i++){for (j=1;j<=N;j++){x[i][j]=y[i][j];}} }void show(){int i,j;cout<<s<<endl;for (i=1;i<=N;i++){for (j=1;j<=N;j++){if (z[i][j]) cout<<i<<" "<<j<<endl;}} }bool res(){int i,j;s=0;for (i=1;i<=N;i++){for (j=1;j<=N;j++){if (z[i][j]){set(i,j);s=s+1;}}}for (i=1;i<=N;i++){for (j=1;j<=N;j++){if (x[i][j]=='+') return false;}}return true; }void dfs(int p,int q){if (f) return ;if (p==N+1){if (res()){f=true;show();}init();return ;}if (q==N+1){dfs(p+1,1);return ;}z[p][q]=1;dfs(p,q+1);z[p][q]=0;dfs(p,q+1); }int main(){int i,j;for (i=1;i<=N;i++){for (j=1;j<=N;j++){cin>>x[i][j];y[i][j]=x[i][j];}}dfs(1,1);return 0; }總結(jié)
以上是生活随笔為你收集整理的poj2965 The Pilots Brothers' refrigerator的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JMS 的Pub/Sub模型
- 下一篇: ARC 100 C - Linear A