zoukankan      html  css  js  c++  java
  • YTU 2438: 三人三鬼

    2438: 三人三鬼

    时间限制: 1 Sec  内存限制: 128 MB
    提交: 35  解决: 9

    题目描述

    *目标是将东岸的33鬼通过一只小船转移到西岸,希望以尽可能少的摆渡次数。
    *船的容量有限,一次最多只能坐2人(或2鬼或11鬼)。
    *无论是在河的东岸还是在河的西岸,一旦鬼数多于人数,则人被鬼扔到河中。
    *怎样渡河的大权掌握在人的手中。
    *只求一种渡河方案。依次输出东岸的状态。

    输入

    无输入

    输出

    依次输出东岸的状态

    样例输入

    NO

    样例输出

    x:(a,b)
    ....

    迷失在幽谷中的鸟儿,独自飞翔在这偌大的天地间,却不知自己该飞往何方……

    #include<iostream>
    using namespace std;
    bool AQ,CHF;
    struct state
    {
        int r;
        int g;
    } s[15],d[7]= {{0,0},{0,-2},{-1,-1},{- 2,0},{0,1},{1,1},{1,0}};
    void display(int p)
    {
        for(int i=1; i<=p; i++)
            cout <<i<<":("<< s[i].r<<","<< s[i].g << ")"<< endl;
    }
    int main()
    {
        s[1].r=3;
        s[1].g=3;
        int u=3,v=3;
        int a,mu,mv;
        int flag1=0;
        int flag2=0;
        int k=0;
        while(!(u==0 && v==0))
        {
            k++;
            if (k%2 == 0)
                a=4;
            else
                a=1;
            for (int i=a; i<=a+2; i++)
            {
                mu = u + d[i].r;
                mv = v + d[i].g;
                if ( mu>3 || mv>3 || mu<0 || mv<0 ||(mu==3 && mv==3 ))continue;
                AQ = ((mu==3) || (mu==0)  ||(mu==1 && mv==1) ||(mu==2 && mv==2) );
                CHF = (flag1) && (flag2);
                if (mu==0 || (AQ&& (!CHF)) )
                {
                    u = mu;
                    v = mv;
                    s[k+1].r=u;
                    s[k+1].g=v;
                    if(u==1&&v==1) flag1++;
                    if(u==2&&v==2) flag2++;
                    break;
                }
            }
        }
        display(k+1);
        return 0;
    }

  • 相关阅读:
    IOS开发--第四阶段--关联
    1.7 Flask
    1.4 linux 路飞项目
    linux 1.3 nginx 负载均衡和配置文件
    1.2 redis
    1.1 xinnian
    12.30 linux 7
    12.29
    12.29 linux3 mysql和redis
    12.28 linux 第四天 安装python 和虚拟环境
  • 原文地址:https://www.cnblogs.com/im0qianqian/p/5989446.html
Copyright © 2011-2022 走看看