首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【 HDU 2177 】取(2堆)石子游戏 (威佐夫博弈)

    给定若干组数据:a,b表示两堆的石子数量,求先手输还是赢,赢还要求第一步之后的两堆石子数,如果有取相同的方案,先输出。 题解 威佐夫博弈问题。...必输的状态(奇异局势):(0,0),(1,2),(3,5),..(a_k,a_k+k)其中a_k是前面未出现过的最小的正整数。 有一些性质:每个正整数在必输状态中出现且仅出现一次。...于是可以计算并存储下必输状态(X,Y),x[k]为第k个必输状态的较小的数,y[i]为必输状态中是较小的数i 对应的较大的数,z[i]为必输状态中较大的数i 对应的较小的数。...先手输的情况就是一开始就是必输态,也就是k=b-a,x[k]==a。 先手赢的情况,是将局面变成必输态: 取走两个相同的数后,差k不变,若a>x[k],则可变成(x[k],y[x[k]])。...只取第一堆: 若b在它所在的必输态中是较大的数(z[b]!=0),且a>z[b],则可变成(z[b],b)。 只取第二堆: 第二堆仍更大:若a在必输态中是较小的数(y[a]!

    50530

    【PAT520 钻石争霸赛】7-6 随机输一次 (20分)

    为了不让对方意识到你在控制结果,你需要隔 K 次输一次,其中 K 是系统设定的随机数。...输入格式:输入首先在第一行给出正整数 N(≤10),随后给出 N 个系统产生的不超过 10 的正随机数 { K​1​​,K​2​​,⋯,K​N​​ },数字间以空格分隔。...这意味着第 i(i=0,1,⋯,N−1)次输局之后应该隔 K​i+1​​ 次再让下一个输局。如果对方出招太多,则随机数按顺序循环使用。...例如在样例中,系统产生了 3 个随机数 {2, 4, 1},则你需要:赢 2 次,输 1 次;赢 4 次,输 1 次;赢 1 次,输 1 次;然后再次回到第 1 个随机数,赢 2 次,输 1 次。...输出格式:对每一个输入的出招,按要求输出赢或输局的招式。每招占一行。

    36710

    博弈论入门之威佐夫博弈

    威佐夫博弈 威佐夫博弈是一类经典的博弈问题 有两堆石子,两个顶尖聪明的人在玩游戏,每次每个人可以从任意一堆石子中取任意多的石子或者从两堆石子中取同样多的石子,不能取得人输,分析谁会获得胜利 博弈分析...前辈们在对该博弈游戏做了大量的探索之后最终找到了一些非常有意思的性质 下面的内容不想看的可以跳过直接看结论,其实也没啥乱用233,这部分就是为了拓宽视野的 定义先手必输的局势为奇异局势,前几个奇异局势为...假设(x,y)为第k个奇异局势 性质: x为前 个奇异局势中没有出现过的最小正整数,y=x+k 打表找规律 任何一个自热数都包含在一个且仅有一个奇异局势中 感觉网上证的都不靠谱,那只好让本蒟蒻亲自下手喽...2)任意自然数仅出现一次 对于(1):反证法,设v这个数没有出现过,那么v可以做一个新的奇异局势的x 对于(2): 反证法 假设数v出现了两次,那么v一定不是所在奇异局势的xx必须之前未出现) 那么v只能同时是两个奇异局势的

    1.3K40

    (模拟)L1-019. 谁先倒(2016)

    两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。...下一行给出一个正整数N(<=100),随后N行,每行给出一轮划拳的记录,格式为: 甲喊 甲划 乙喊 乙划 其中“喊”是喊出的数字,“划”是划出的数字,均为不超过100的正整数(两只手一起划)。...两人同赢或两人同输则继续下一轮,直到唯一的赢家出现。 下面给出甲、乙两人的酒量(最多能喝多少杯不倒)和划拳记录,请你判断两个人谁先倒。...下一行给出一个正整数N(<=100),随后N行,每行给出一轮划拳的记录,格式为: 甲喊 甲划 乙喊 乙划 其中“喊”是喊出的数字,“划”是划出的数字,均为不超过100的正整数(两只手一起划)。

    6710

    分支与循环(3)

    6.3 while 循环的实践 练习:在屏幕上打印 1~10 的值 6.4 练习 输⼊⼀个正的整数,逆序打印这个整数的每⼀位 例如: 输⼊:1234,输出:4 3 2 1   输⼊:521,输出:1 2...8.4 练习 输⼊⼀个正整数,计算这个整数是⼏位数?...例如: 输⼊:1234 输出:4 输⼊:12 输出:2 参考代码: 这⾥并⾮必须使⽤ do while 语句,但是这个代码就⽐较适合使⽤ do while 循环,因为n即使是 0,也是1位数,要统计位数的...注:素数⼜称质数,只能被1和本⾝整除的数字。 10.2 题⽬解析: 1. 要从100~200之间找出素数,⾸先得有100~200之间的数,这⾥可以使⽤循环解决。 2....disaster)                    goto error;             }       } } error: 本来 for 循环想提前退出得使⽤ break ,⼀个 break 只能跳出

    9310
    领券