zoukankan      html  css  js  c++  java
  • HDU-2897 邂逅明下

    邂逅明下

    开头很文艺的一段说明, 2333。

    题解:布什博弈的变形, 谁最后一次取谁输。如果留下了[1,p]的石子个数那么接下来取的那个人就一定输了。

    现在要求的是新手赢, n%(p+q) > p 的话, 先手可以将余数从>p, 取成 小于一个p的值, 然后这个人对于剩下的石子来讲就是后手了, 然后根据布什博弈的道理, 控制区间, 然后留下 小于p的那个值就好了。

    如果n % (p+q) == 0 那么先手取最大的情况就好了, 就如同样例 6 2 4 先手取4, 后手必须要把2都拿走, 后手就输了。

    代码:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 #define LL long long
     4 #define ULL unsigned LL
     5 #define fi first
     6 #define se second
     7 #define lson l,m,rt<<1
     8 #define rson m+1,r,rt<<1|1
     9 #define max3(a,b,c) max(a,max(b,c))
    10 const int INF = 0x3f3f3f3f;
    11 const LL mod = 1e9+7;
    12 typedef pair<int,int> pll;
    13 int n, p, q;
    14 int main(){
    15     while(~scanf("%d%d%d", &n, &p, &q)){
    16         if(n%(p+q) == 0 || n%(p+q) > p) puts("WIN");
    17         else puts("LOST");
    18     }
    19     return 0;
    20 }
  • 相关阅读:
    Lambda表达式
    多态的实现原理
    泛型
    tomcat
    nginx
    列举cocoa touch 常用框架
    写出你对MVC模式的理解
    写一个委托的interface
    写一个“标准”宏MIN 这个宏输入两个参数并返回较小的一个
    简介Object-C的内存管理
  • 原文地址:https://www.cnblogs.com/MingSD/p/8583446.html
Copyright © 2011-2022 走看看