• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
ACM s1124yy
守りたいものが 強くさせること
博客园    首页    新随笔    联系   管理     

HDU 2897 邂逅明下(巴什博奕)

题意:

每行有三个数字n,p,q,表示一堆硬币一共有n枚,从这个硬币堆里取硬币,一次最少取p枚,最多q枚,如果剩下少于p枚就要一次取完。两人轮流取,直到堆里的硬币取完,最后一次取硬币的算输。对于每一行的三个数字,给出先取的人是否有必胜策略,如果有回答WIN,否则回答LOST。

题解:

这题写的挺有意思的,要是我也能邂逅这mm就好了。
这题像是一个对称的行为,最优的策略是你取k个我就取p+q-k个,以p+q为对称点,所以对p+q取余看结果就好。

代码:

#include <stdio.h>

int main()
{
    int n,p,q;
    while(~scanf("%d%d%d",&n,&p,&q))
    {
        n = n%(p+q);
        if(n>0 && n<=p)
        printf("LOST\n");
        else
        printf("WIN\n");
    }

    return 0;
}
posted @ 2016-07-25 17:29  s1124yy  阅读(134)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3