带环的博弈and对称性

原创 2016年08月28日 20:37:05

题目:hdu3951

题意:有一圈硬币有n个。每个人每次可以拿连续的1到k个。谁先拿完谁赢。

解答:n<=k:先手赢

            k =1:看奇偶

           其他情况:!!!!!第一个拿完之后就变成了一条链。这时候第二个人把这条链分为相同长度的两个部分。然后先手拿啥他就对应的拿啥。

           因为:sg值一样的两个游戏处于必败状态。先手干什么后手就在另一个游戏上干什么,最后后手肯定胜利。

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int n,k;
int main()
{
    int T;
    scanf("%d",&T);
    for(int i = 1;i <= T;i++)
    {
        int ans = 0;
        memset(vis,0,sizeof(vis));
        scanf("%d%d",&n,&k);
        printf("Case %d: ",i);
        if(n <= k)
            puts("first");
        else
        {
            if(k == 1)
                if(n % 2)
                puts("first");
                else
                puts("second");
            else
                puts("second");
        }
    }
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

带环单链表及单链表的相交

带环单链表的概念:当单链表的尾指针指向了链表上任一非尾结点时,即生成了一个带环单链表。

带环的链表

单链表的问题在面试考试等等等等中频频上镜,大有赶上凤姐超越芙蓉之势。假若有一个蛋疼的程序猿把单链表的末尾结点的next指针指向了单链表中一个随机的结点上,那么我们经常写的一个循环while(p)或者w...

《C语言实现链表相交、带环问题》

例题://1.判断单链表是否带环?若带环,求环的长度?求环的入口点? //2.判断两个链表是否相交,若相交,求交点。(假设链表不带环) //3.判断两个链表是否相交,若相交,求交点。(假设链表可能带环...

带环的链表

原文地址  作者July 单链表的问题在面试考试等等等等中频频上镜,大有赶上凤姐超越芙蓉之势。假若有一个蛋疼的程序猿把单链表的末尾结点的next指针指向了单链表中一个随机的结点上,那么我们经常写的一...

中间带环的单向循环链表

中间带环的单向链表 判断链表有没有环和环的大小以及切入点和链的长度

7.微软亚院之编程判断俩个链表是否相交(为了简化问题,我们假设俩个链表均不带环)

问题: 微软亚院之编程判断俩个链表是否相交 给出俩个单向链表的头指针,比如h1,h2,判断这俩个链表是否相交。 为了简化问题,我们假设俩个链表均不带环。 答案: //2012...

链表面试题(十二)---判断两个都不带环的链表是否相交

一、结构体定义typedef int DataType;typedef struct ListNode//定义结点 { DataType data; struct ListNode* ...

判断两个链表是否相交,若相交,求交点,考虑带环情况实现代码

梳理一下思路思路相当于求俩个链表的第一个公共结点,要么找到,要么为空,那么考虑到有链表可能有带环的情况,情况共分为下面三种: (1)、两个链表都带环 分别获取两个链表环的入口点 ...

判断单链表是否带环

//这个题思路不难,我们只要定义两个指针,一快一慢,快指针一次走两步,慢指针一次走一步 //如果它们相遇,则单链表构成了环形结构。 如果未相遇, 而快指针走到了链表结尾,则单链表未构成环形结构 #in...

带环单链表的问题

因为上一篇文章对这个问题讲解的很详细,这里只给个代码展示:(找出带环单链表的环的第一个节点) #include using namespace std; int length; struct N...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)