POJ-2969 the pilots brothers' refridgerator
2011-09-04 19:40
106 查看
可以高斯消元,但是我不会 :(
/* * POJ-2965 the pilots brothers' refrigerator * mike-w * 2011-9-4 * creativewang@163.com * hint: DFS */ #include<stdio.h> #include<stdlib.h> long board; long open=0x0000; long min=0xffff; long rec; long ans; long c[20]={ 0x0000, 0xf888,0xf444,0xf222,0xf111, 0x8f88,0x4f44,0x2f22,0x1f11, 0x88f8,0x44f4,0x22f2,0x11f1, 0x888f,0x444f,0x222f,0x111f }; int getData(void) { char ch; while((ch=getchar())!=EOF) if(ch=='-') board<<=1; else if(ch=='+') board|=0x1,board<<=1; board>>=1; return 0; } /* * n: 搜索深度 * board: 状态 * op: 已完成操作数 */ int search(int n,long board,int op) { if(op>=min) return 0; if(n>16) { if(board==open && op<min) min=op,ans=rec; return 0; } rec<<=1; search(n+1,board,op); rec>>=1; rec|=1; rec<<=1; search(n+1,board^c ,op+1); rec>>=2; rec<<=1; return 0; } int output(void) { printf("%ld\n",min); ans>>=1; /* printf("ans=%ld\n",ans); */ int i,j,p=1<<15; for(i=1;i<=4;i++) for(j=1;j<=4;j++,p>>=1) if(ans&p) printf("%d %d\n",i,j); p>>=1; return 0; } int main(void) { #ifndef ONLINE_JUDGE freopen("1965.in","r",stdin); #endif getData(); search(1,board,0); output(); return 0; }
相关文章推荐
- POJ 2965:The Pilots Brothers' refrigerator
- POJ 2965 The Pilots Brothers' refrigerator(枚举)
- poj 2965 The Pilots Brothers' refrigerator
- poj 2965 The Pilots Brothers' refrigerator
- poj 2965 The Pilots Brothers' refrigerator 【dfs+枚举】【双十一大礼包】【刷题计划】
- poj_2965 The Pilots Brothers' refrigerator(bfs+位运算)
- POJ 2965-The Pilots Brothers' refrigerator(枚举&&DFS&&输出过程)
- poj 2965 The Pilots Brothers' refrigerator 普通dfs 超时 暑假第二题
- poj 2965 The Pilots Brothers' refrigerator(dfs 枚举 +打印路径)
- POJ-2965-The Pilots Brothers' refrigerator-bfs枚举-位运算
- POJ 2965 The Pilots Brothers' refrigerator(枚举+dfs)
- poj 2965 The Pilots Brothers' refrigerator[ 枚举 ]
- POJ:2965 The Pilots Brothers' refrigerator(二进制枚举)
- POJ 2965 The Pilots Brothers' refrigerator
- poj 2965 The Pilots Brothers' refrigerator
- poj 2965 The Pilots Brothers' refrigerator(dfs)
- POJ The Pilots Brothers' refrigerator 2965
- poj 2965 The Pilots Brothers(搜索)
- POJ 2965 The Pilots Brothers' refrigerator
- poj 2965 The Pilots Brothers' refrigerator--棋盘--深搜