Uva10001 Garden of Eden

简介: Uva10001 Garden of Eden
#include <stdio.h>inta[40], f[10], A[40], n;
intd[10][3] = {{0, 0, 0},
    {0, 0, 1},
    {0, 1, 0},
    {0, 1, 1},
    {1, 0, 0},
    {1, 0, 1},
    {1, 1,0},
    {1, 1, 1}};
charb[40];
intdfs(cur)
{
inti;
if (cur==n-1||cur==n) {
for (i=0; i<8; i++) {
if (f[i] ==a[cur] &&d[i][0] ==A[cur-1] &&d[i][1] ==A[cur] &&d[i][2] ==A[cur+1]) {
if (cur==n-1&&!dfs(cur+1))
return0;
elsereturn1;
            }
        }
    } else {
for (i=0; i<8; i++) {
if (f[i] ==a[cur] &&d[i][0] ==A[cur-1] &&d[i][1] ==A[cur]) {
A[cur+1] =d[i][2];
if (dfs(cur+1))
return1;
            }
        }
    }
return0;
}
intmain()
{
inti, k, id, ok;
#ifndef ONLINE_JUDGEfreopen("d:\\uva_in.txt", "r", stdin);
#endifwhile (scanf("%d%d%s", &id, &n, b+1) ==3) {
for (i=1; i<=n; i++)
a[i] =b[i] -'0';
k=id;
for (i=0; i<8; i++) {
f[i] =k%2;
k/=2;
        }
ok=1;
for (i=0; i<8; i++) {
if (a[1] ==f[i]) {
A[0] =d[i][0];
A[1] =d[i][1];
A[2] =d[i][2];
A[n] =A[0];
A[n+1] =A[1];
if (dfs(2)) {
ok=0;
break;
                }
            }
        }
if (ok)
printf("GARDEN OF EDEN\n");
elseprintf("REACHABLE\n");
    }
return0;
}
目录
相关文章
|
9月前
uva375 Inscribed Circles and Isosceles Triangles
uva375 Inscribed Circles and Isosceles Triangles
27 0
|
机器学习/深度学习
|
算法
UVA题目分类
题目 Volume 0. Getting Started 开始10055 - Hashmat the Brave Warrior 10071 - Back to High School Physics 10300 - Ecological Premium 458 - The Decoder 494...
1540 0
uva 10273 Eat or Not to Eat?
点击打开链接uva 10273 思路: 暴力求解 分析: 1 题目要求没有吃掉的奶牛的个数已经最后一次吃掉奶牛的天数 2 没有其它的方法只能暴力,对于n头牛的n个周期求最小公倍数,然后在2个公倍数之内暴力求解 代码: #inclu...
788 0
|
C++
uva 11136 Hoax or what
点击打开链接uva 11136 思路: STL 分析: 1 题目意思比较不好理解,理解了题目之后我们可以利用STL的multiset来做 2 每次找到最大和最小的值,然后求解即可 代码: #include #include #in...
828 0
uva 1160 X-Plosives
点击打开链接uva 1160 思路: 并查集 分析: 1 看懂题目之和就是切菜了 代码: #include #include #include #include using namespace std; const int MAXN...
749 0
uva10465Homer Simpson
题意:HM先生喜欢吃汉堡,有两种汉堡,每种无限多个,吃完第一种的汉堡一个需要m时间,第二种需要n时间,HM先生饭量很大可以不停的吃,给定一个时间t,在t时间段内希望HM先生吃尽量多的汉堡,并且空余出来的时间要尽量少 分析:是一个只有两种元素的完全背包问题。
703 0