POJ 3185 DFS
好像可以用高斯消元???
但是用搜索写 这题就很水了。、。
// 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;
}
还有人这么写 但是我不理解。。。
POJ 3185 DFS的更多相关文章
- POJ 1222 POJ 1830 POJ 1681 POJ 1753 POJ 3185 高斯消元求解一类开关问题
http://poj.org/problem?id=1222 http://poj.org/problem?id=1830 http://poj.org/problem?id=1681 http:// ...
- POJ 1321 DFS
题意:POJ少见的中文题,福利啊. 思路: 一开始也没有思路呃呃呃 . 裸搜,连样例都过不去...参照了网上的题解:一行一行DFS 茅塞顿开啊. #include <cstdio> #in ...
- POJ 3185 The Water Bowls(高斯消元-枚举变元个数)
题目链接:http://poj.org/problem?id=3185 题意:20盏灯排成一排.操作第i盏灯的时候,i-1和i+1盏灯的状态均会改变.给定初始状态,问最少操作多少盏灯使得所有灯的状态最 ...
- POJ 1979 dfs和bfs两种解法
fengyun@fengyun-server:~/learn/acm/poj$ cat 1979.cpp #include<cstdio> #include<iostream&g ...
- poj 1190 DFS 不等式放缩进行剪枝
F - (例题)不等式放缩 Time Limit:1000MS Memory Limit:10000KB 64bit IO Format:%I64d & %I64u Submi ...
- poj 1562 dfs
http://poj.org/problem?id=1562 #include<iostream> using namespace std; ,m=,sum=; ][]; ][]={-,, ...
- POJ 1979 DFS
题目链接:http://poj.org/problem?id=1979 #include<cstring> #include<iostream> using namespace ...
- poj 1088 (dfs+记忆化) 滑雪
题目;http://poj.org/problem?id=1088 感觉对深搜还不太熟练,所以练习一下,类似于连连看的那题,注意的是所求的是最大达长度,并不是从最大的或者最小的点出发得到的就是最长的路 ...
- Oil Deposits(poj 1526 DFS入门题)
http://poj.org/problem?id=1562 ...
随机推荐
- hdu3938 Portal 离线的并查集
离线算法是将全部输入都读入,计算出所有的答案以后再输出的方法.主要是为避免重复计算.类似于计算斐波那契数列的时候用打表的方法. 题目:给一个无向图,求有多少个点对,使得两点间的路径上的花费小于L,这里 ...
- 使用Flask和Bootstrap构建博客系统(1) - 准备篇
技术栈 macOS10.12.5 Python2.7.13 Bootstrap4.0.0-beta.2 virtualenv virtualenvwrapper 安装Python2.7.13 下载Bo ...
- C# 3.0新加特性
类型推断 申明变量的时候,可以不用直指定类型: var i = 5; var s = "Hello"; //两种写法是一样的 int i = 5; string s = " ...
- java必备技能
Android应用程序开发是以Java语言为基础的,所以需要有扎实的Java基础知识.首先熟悉java基本语法,然后熟悉设计模式等. a) Java基础语法:看下面的<Java知识点列表> ...
- php生成唯一识别码uuid
/*生成唯一标志*标准的UUID格式为:xxxxxxxx-xxxx-xxxx-xxxxxx-xxxxxxxxxx(8-4-4-4-12)*/ function uuid() { $chars = md ...
- JDBCUtils 工具类
import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.sql.DataSource;import java.io.IOE ...
- vc++文本框的编辑
新建mfc应用程序,单文档,起名Text,先编译一下 首先要创建一个插入符,用CreateSolid 窗口的高度宽度,可以通过GetSystemMetrics()函数获取 视类是覆盖在框架类之上的 创 ...
- 关于MySQL日期操作函数 date_formate 的使用
基本语法:DATE_FORMAT(date,format)说明:date 参数是合法的日期.format 规定日期/时间的输出格式.可以用的格式主要有格式 描述%a 缩写星期名%b 缩写月名%c 月, ...
- jq操作table追加td
示例 代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- jquery 去重
var yearArray = new Array(2009, 2009, 2010, 2010, 2009, 2010); $.unique(yearArray); alert(yearArray) ...