POJ 3185 DFS
来源:互联网 发布:上海淘宝代理运营 编辑:程序博客网 时间:2024/05/22 17:03
好像可以用高斯消元???
但是用搜索写 这题就很水了。、。
// by SiriusRen#include <bitset>#include <cstdio>using namespace std;bitset<20>b;int jy;bool dfs(int t,int pos){ if(!b.to_ulong())return 1; if(t>=jy)return 0; for(int i=pos;i<20;i++) { b.flip(i); if(i==0)b.flip(i+1); else if(i==19)b.flip(i-1); else b.flip(i+1),b.flip(i-1); if(dfs(t+1,i+1))return 1; b.flip(i); if(i==0)b.flip(i+1); else if(i==19)b.flip(i-1); else b.flip(i+1),b.flip(i-1); } return 0;}int main(){ for(int i=0;i<20;i++){scanf("%d",&jy);if(jy)b[i]=1;} for(jy=0;jy<=20;jy++) if(dfs(0,0)){printf("%d\n",jy);return 0;}}
#include <iostream>using namespace std;int bowl[25]={0},flip[25]={0};int main(){ int i,cnt=100,tmp; for (i=1;i<21;i++) cin >> bowl[i]; flip[1] = tmp = 1; //翻第一个 for (i=2;i<21;i++) if ( flip[i] = (flip[i-2]^flip[i-1]^bowl[i-1]) ) tmp++; if ( tmp<cnt && (flip[19]^flip[20]^bowl[20])==0 ) cnt = tmp; flip[1] = tmp = 0; //不翻第一个 for (i=2;i<21;i++) if ( flip[i] = (flip[i-2]^flip[i-1]^bowl[i-1]) ) tmp++; if ( tmp<cnt && (flip[19]^flip[20]^bowl[20])==0 ) cnt = tmp; cout << cnt << endl; return 0;}
还有人这么写 但是我不理解。。。
0 0
- POJ 3185 DFS
- DFS POJ
- POJ DFS
- POJ 3185 高斯消元+DFS枚举自由变量
- poj 3083 DFS+DFS+BFS
- POJ 1753 ID+DFS
- poj 1950 数字dfs
- poj 1816(trie+dfs)
- POJ 3107 Godfather(DFS)
- poj 3620(DFS)
- poj 1020 DFS
- poj 2362Square(DFS)
- POJ 2676 Sudoku dfs
- POJ 2357 Labyrinth [DFS]
- poj 1011 dfs
- poj 1190 dfs(生日蛋糕)
- poj 1154 dfs
- poj 2192 DFS+剪枝
- C++ Primer 笔记——第一部分(基本语言)
- 转载网上一个非常详细的spring MVC配置解析
- 用netstat查看网络状态详解
- 关于编码ansi、GB2312、unicode与utf-8的区别
- 直接插入排序
- POJ 3185 DFS
- 在二维数组中查找一个指定的数值
- std::map的机制
- UNIX_C 高级编程<五>
- android极光推送学习入门版
- cookie 和session 的区别详解
- Tomcat内存溢出 PermGen space和Java heap space
- wpa_supplicant
- 使用maven给spring项目打可直接运行的jar包(配置文件内置外置的打法)