【DFS】POJ 2044
来源:互联网 发布:军团要塞2 优化设置 编辑:程序博客网 时间:2024/05/16 08:12
http://poj.org/problem?id=2044
#define N 366bool flag[8][8][8][8][10][N];//前四个是四个角的状态,第五个是云的左上角的位置,最后一个是第几天int day[N];int n;int d[9][2] = { {0,0},//九个位置 {-1,0},{-2,0}, {1,0},{2,0}, {0,-1},{0,-2}, {0,1},{0,2} };//四个角7天内没雨,return false//该状态已存在,return false//是否有限制不能下雨bool chk(int x,int y,int num,int *a){ if(a[1]==7||a[2]==7||a[3]==7||a[4]==7)return false; int pos = 3*x+y; if(flag[a[1]][a[2]][a[3]][a[4]][pos][num] == true)return false; int tmp = (1<<(15-4*x-y)) | (1<<(15-4*(x+1)-y)) | (1<<(15-4*x-(y+1))) | (1<<(15-4*(x+1)-(y+1))); if((day[num]&tmp) != 0)return false; flag[a[1]][a[2]][a[3]][a[4]][pos][num] = true; return true;}bool dfs(int x,int y,int num,int *a){ if(num==n)return true; if(chk(x,y,num,a) == false)return false; int i,j,k; for(i=0;i<9;i++){//(0,0)-->(2,2) int xx = x+d[i][0]; int yy = y+d[i][1]; if(xx<0 || xx>2 || yy<0 || yy>2)continue; int b[5]; b[1] = a[1]+1; b[2] = a[2]+1; b[3] = a[3]+1; b[4] = a[4]+1; if(xx==0 && yy==0)b[1] = 0; if(xx==0 && yy==2)b[2] = 0; if(xx==2 && yy==0)b[3] = 0; if(xx==2 && yy==2)b[4] = 0; if(dfs(xx,yy,num+1,b))return true; } return false;}int main(){ while(scanf("%d",&n) && n){ int i,j; memset(day,0,sizeof(day)); memset(flag,false,sizeof(flag)); for(i=0;i<n;i++){ for(j=1;j<=16;j++){ int x; scanf("%d",&x); day[i] = (day[i]<<1) | x; } } int a[5];//记录四个角没有下雨天数 a[1] = a[2] = a[3] = a[4] = 1; if(dfs(1,1,0,a))printf("1\n"); else printf("0\n"); } return 0;}
- 【DFS】POJ 2044
- poj 2044 DFS
- DFS POJ
- POJ 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+剪枝
- android 学习笔记(一)
- QC笔记
- Vector中的 insert()和 erase()的使用
- 利用 AWK 的数值计算功能提升工作效率
- NSLog输出的格式
- 【DFS】POJ 2044
- poj Number Sequence
- LINUX中断机制
- OS的核心类型
- mysql JDBC URL格式及其参数说明
- MPLS 转发原理
- 初识memcached
- HTTP消息头
- Red Hat Enterprise 5 server 上安装 memcached 的问题记录