小石的签到题 题解

小石的签到题

https://ac.nowcoder.com/acm/contest/5505/D

小编的思路:

第一种:直接暴力枚举他们取石子的过程 惨遭超时

然后小编就开始想啊:他们取石子的赢得那方是不是有必胜策略呢?

于是我们就把取石子的过程输出来看:

偶对了,取石子的过程是这样的:

image.png

还自带水印的%%%

看到这里,想必大家一定明白了————————我们来写一个对拍

对拍的过程中,小编发现了:除了1,是小阳赢,其他的都是小石赢了 别问我怎么知道的

我们对拍的代码: dalao勿喷

#include <bits/stdc++.h>
using namespace std;
#define MAXN 1000000005
bool flag[MAXN];
int main()
{
    int n, dddddddd = 0;
    cin >> n;
    if(n == 1)
        puts("Yang");
    else if(n == 2)
        puts("Shi");
    else
    {
        int cnt = 0, ni = n - 1;
        while(cnt <= n)
        {
            int tmp = ni;
            while(!flag[tmp])
            {
                cout << tmp << " ";
                flag[tmp] = true;
                tmp /= 2;
                cnt++;
            }
            puts("");
            ni--;
            dddddddd != dddddddd;
        }
        if(dddddddd)
            puts("Shi");
        else
            puts("Yang");
    }
    return 0;
}

然后我们循环一遍,然后就会发现:答案清一色的是Shi,于是我连蒙带猜,连滚带爬的写对了。

最后,

我要吸吸你们的欧气

吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸吸

事后注明:

本人第一次写博客,                                  喜                                                                   

嘻嘻

全部评论
可以这样理解,n为1的时候只有唯一的选择,但是如果n>1的时候,那么就会有多余1种的取法,也就是有至少2种选法,两种选法选的次数一定是相邻的,那么小石就一定有一种选法可以让小阳选到最后一个石子。这就是先手的优势。
1 回复 分享
发布于 2020-04-28 23:04
卑微的前排
点赞 回复 分享
发布于 2020-04-28 22:50
https://blog.nowcoder.net/n/1228c4f9e0114c669de6155d70ee1d32
点赞 回复 分享
发布于 2020-04-28 23:28

相关推荐

中南民族大学的一名中南民族大学的学生:不敢睁开眼 希望是我的幻觉
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务