巴什博弈------最少取件数 不是1的情况下 hdu---2897
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了巴什博弈------最少取件数 不是1的情况下 hdu---2897相关的知识,希望对你有一定的参考价值。
最少取件数 是1的时候 核心代码是
1 // 共有 n 见 物品 一次最少取 一个 最多取 m 个 2 if(n%(m+1)==0) 3 printf("先取者输");
在代码中 可以看到 题目中 一共出现的 三个量 1 , n ,m
当 最少取件数 不是 1的 情况下 怎么办呢 部分同学 应该就想到了 这种 代码
1 // 共有 n 见 物品 一次最少取 p 个 最多取 q 个 2 if(n%(m+q)==0) 3 printf("先取者输");
然而 只是这样考虑的话 那么 思维就有点 僵硬了
没有考虑到 其他的 必输 情况
也就是 当 n%(p+q) 的时候 余数 可能是 大于 最小 可取数的 当 余数 大于最小可取数的时候 对手仍然可以让你 必输 ....说的不清楚 自己用 6 2 3 这三个 数字 检测一下吧
1 #include<stdio.h> 2 int main() 3 { 4 int q,n,p; 5 while(scanf("%d%d%d",&n,&p,&q)!=EOF) 6 { 7 if(n%(q+p)==0||n%(q+p)>p) 8 printf("WIN\n"); 9 else 10 printf("LOST\n"); 11 } 12 return 0; 13 }
以上是关于巴什博弈------最少取件数 不是1的情况下 hdu---2897的主要内容,如果未能解决你的问题,请参考以下文章