zoukankan      html  css  js  c++  java
  • Busy Beavers(暴力模拟)

     由于排版问题,题目无法显示,可以到 http://7xjob4.com1.z0.glb.clouddn.com/e4872a15819b6bf9d1e5250bacc2a30b  查看

    题目大意是有只海狸在一排无穷多的好树上,起始心情是A,问经过一系列操作后,能否心情好(心情变成H)。

    给出十组数据分别代表,A心情时,对好树的操作,A心情时,对坏树的操作,B心情时,对好树的操作,B心情时,对坏树的操作。。。以此类推

    具体的操作有三种,给出的三个字符分别代表三种操作。第一种1和0代表,把当前的树变成坏树(1)或者好树(0);第二种L和R代表往左移动(L)或者往右移动(R);第三种字符(A~E和H)代表经过这树后的心情会变成什么。

    那么我们可以用一个数组M,记录当前心情和树的状态为某个值时对应的操作。比如M[0]代表A心情时对好树的操作,M[1]代表A心情时对坏树的操作,以此类推。。

    我们再开一个2e的bool数组模拟树的状态,我们从下标为1e的点开始,起始状态为A心情,好树,那我们就对应选择M[0]操作,假设M[0]为1RB,那我们把这树的状态改为1(坏树),然后心情变为B,然后向右走,此时海狸心情为B,树为好树,那我们对应选择M[2]。。。然后模拟5000w次,如果找到H心情,则break。

    #include <iostream>
    #include <cstdio>
    using namespace std;
    const int maxn=1e8;
    bool tree[2*maxn];
    struct node{
        bool ok;//代表要将树变成什么状态
        int step;//代表下一步动作
        int mood;//0,2,4,6,8,14分别代表心情A,B,C,D,E,H
    }M[10];
    char str[5];
    int main()
    {
        freopen("beavers.in","r",stdin);
        freopen("beavers.out","w",stdout);
        for (int i=0;i<10;i++)
        {
            scanf("%s",str);
            M[i].ok=str[0]-'0';
            M[i].step=(str[1]=='L')?-1:1;
            M[i].mood=2*(str[2]-'A');
        }
        int pos=maxn,Mood=0,ok=0;//下标从1e开始,起始心情为0
        int all=50000000;//一共模拟5000w次
        while (all--)
        {
            bool cur=tree[pos];
            tree[pos]=M[Mood+cur].ok;//改变树的状态
            pos+=M[Mood+cur].step;//移动
            Mood=M[Mood+cur].mood;//改变心情
            if (Mood==14)//14代表H,如果遇到H,break
            {
                ok=1;
                break;
            }
        }
        if (ok) puts("happy beaver");
        else puts("unhappy beaver");
        return 0;
    }
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  • 相关阅读:
    JDBC
    JDBC连接MYSQL
    Servlet学习(1)
    Apache http server和tomcat的区别
    log4j(转)
    《打造Facebook》
    深入浅出Java三大框架SSH与MVC的设计模式
    Python 爬虫监控女神的QQ空间新的说说,实现秒赞,并发送说说内容到你的邮箱
    Python 爬虫监控女神的QQ空间新的说说,实现邮箱发送
    linux 进程消耗查看
  • 原文地址:https://www.cnblogs.com/scaugsh/p/5769237.html
Copyright © 2011-2022 走看看