
博弈
winhcc
这个作者很懒,什么都没留下…
展开
-
Codeforces 1194D
简单博弈给你个数n,每次能减去1,2,或者k,两个人轮流,轮到谁那个数是0的时候谁输。先打表,发现k不是3的倍数的时候数字是循环的,循环节是3k是3的倍数时循环节是(k+1) 再讨论一下即可/************************************************************************* > File Name: 1194D.cpp...原创 2019-07-15 11:46:29 · 540 阅读 · 0 评论 -
hdu 1525
简单博弈对于一个状态,要么是必胜,要么必败对于(a,b) ,a > b来说若 a % b == 0 直接转化为(b,0),结束若 a / b > 1 , 设 a = q * b + r , q > 1 , 0 < r < b,则 可以转化为(b + r , b ) 或 ( b , r )注意(b + r , b ) 也可以转化到 (b , r) ,考虑状态...原创 2019-07-15 15:40:46 · 159 阅读 · 0 评论 -
Codeforces 1190B
有n堆石子,两个人轮流,每次只能拿一个,不能拿了或者拿完后有两堆石子的数量相同(可能两堆都是0)的话会输开局有几种情况第一个人是一定会输的即cnt[0] >= 2cnt[x] >= 3amt(cnt[x]) > 1cnt[x] = 2 && cnt[x-1] >= 1由于要避免产生两堆相同的石子,故如果当前局势未结束的话必定先拿相对小的,使其更小...原创 2019-07-24 10:35:13 · 265 阅读 · 0 评论 -
Codeforces 1147C
n堆(n是偶数)石子,两个人每次要在n/2堆石子中每堆至少取一个,不能取为失败。设x为当前n堆石子的最小值当cnt[x] <= n/2时,该局势是必胜局势,否则是必败局势若cnt[x] <= n/2 ,可以选n/2个大于x的石子堆,并且把他们减少到x,得到必败局势若cnt[x] > n/2 ,首先,如果x 为 0 ,那么选不了 n/2 堆了,当x 不为 0 ,那么选n...原创 2019-07-24 11:22:49 · 283 阅读 · 0 评论