zoukankan      html  css  js  c++  java
  • 牛客 处女座的约会

    链接:https://ac.nowcoder.com/acm/contest/329/I
    来源:牛客网

    处女座放完了"高利贷",拿到了不少的资金,又可以和小姐姐约会啦!(之前不还是攒钱打比赛的吗)现在处女座拿到了一份宁波市旅游地图决定和小姐姐一起去玩耍。他们来到了动物园,去参观里面的动物。但是很不幸的是,他们在游玩的途中遇到了一只恶龙。

    恶龙长有n个头,但经过了处女座的调教,恶龙变得善良了一些。它的n个头每个头要么仍是邪恶的头,用“1”表示,要么已经变得善良,用“0”表示,因而恶龙的n个头就可以用n位01串来表示。而此时处女座要发挥自己的勇士形象,要把所有的龙头都变成0000000000⋯00完全善良的龙头。每一次,他可以砍掉龙最右侧的一个头,同时龙会在最左侧长出新的一个头,以保证龙头数量不变。如果他砍掉的是一个1,即邪恶的头,他可以决定龙在最左侧会长出什么样的头;但如果他砍掉了一个善良的头,那么玻璃心的恶龙将会在左侧不受控制的长出一个随机的头,既可能是善良的头,也可能是邪恶的头,而且它总会与处女座作对,尽力的破坏他的计划。

    现在给你一个恶龙头的初始状态,即一个01串,请帮助处女座判断一下,能否在有限步之内让全部的龙头都变成善良的龙头。

    输入描述:

    输入第一行T,表示用例组数。

    之后T行,每行一个01串S表示龙头的初始状态,“0”表示善良的头,“1”表示邪恶的头。

    输出描述:

    对于每组数据,处女座能否将全部的龙头变成善良的头,可以的话输出“cnznb”,不可以则输出“ljcnz”(不含引号)。
    示例1

    输入

    1
    1111

    输出

    cnznb

    备注:

    T1000
    |S|100
    注意,这个问题可能没有你想的那么简单。
    显然,处女座必须把一些1变成0,这样才能让1的数量减少并消失。
    但是如果只是简单的每次把1变成0,最终不见得能取胜。
    比如,如果龙头的状态是101,那么去掉最右边的1并选择在左边长出一个0,
    则龙头会变成010;再把010右边的0去掉后,如果左边仍长出一个1,
    则龙头又变回了101的状态,如此反复,将永远不能得到000。


    这道博弈是我所做过的题中代码最简单的。。。。
    #include<cstdio>
    
    int main(){
        int T;
        char str[105];
        scanf("%d",&T);
        for(int i=0;i<T;i++){
            puts("cnznb");
        }
        return 0;
    }
    View Code


  • 相关阅读:
    【阿里前端面试点】目标,想成为一名好的前端工程师
    JavaScript实现数据双向绑定的三种方式
    a标签的下载链接,如果是图片,点击链接是下载一个图片而不是直接打开,应该怎么办?(添加download属性)
    AngularJs scope详解
    setTimeout可以传第三个甚至更多个参数
    (转) css3中的border-radius详解
    (转) JS原生对象、内置对象、宿主对象的区别
    纯css写的步骤条
    css如何实现滚动条隐藏但鼠标仍然可以滚动
    Js 与浮点数
  • 原文地址:https://www.cnblogs.com/kongbb/p/10325347.html
Copyright © 2011-2022 走看看