zoukankan      html  css  js  c++  java
  • hdu 2897巴什博弈变形

    http://acm.hdu.edu.cn/showproblem.php?pid=2897

    题意:一堆石子共n个,A、B两人轮流从中取,每次取得石子数必须在[p,q]区间,若剩下的石子数少于p个,则当前取者必须全部取完。最后取完石子的人输。

    分析:我看分类的时候他写着是用sg打表找规律。我就照做了。我脑残啊。从一堆中取出物体,不就是巴什博弈吗????

    算法分析:

    假设先取者为A,后取者为B,初始状态下有石子n个,除最后一次外其他每次取得石子个数必须在[pq]之间。

    1. 若当前石子共有n =p+q* r个,则A必胜,必胜策略为:A第一次取q个,以后每次若BK个,A取(p+q-k)个,如此下去最后必剩下p个给B,所以A必胜。
    2. n =p+q)* r + left个(1< left <= pB必胜,必胜策略为:每次取石子活动中,若Ak个,则B去(p+q-k)个,那么最后剩下left个给A,此时left <= p,所以A只能一次去完,B胜。
    3. n =p+q* r + left个(p < left <= q),则A必胜,必胜策略为:A第一次取t1< left t <= p)个,以后每次Bk个,则A取(p+q-k)个,那么最后留下1< left t <= pB,则A胜。
    4. View Code
      // I'm lanjiangzhou
      //C
      #include <stdio.h>
      #include <stdlib.h>
      #include <string.h>
      #include <ctype.h>
      #include <math.h>
      #include <time.h>
      //C++
      #include <iostream>
      #include <algorithm>
      #include <cstdio>
      #include <cstdlib>
      #include <cmath>
      #include <cstring>
      #include <cctype>
      #include <stack>
      #include <string>
      #include <list>
      #include <queue>
      #include <map>
      #include <vector>
      #include <deque>
      #include <set>
      using namespace std;
      
      //*************************OUTPUT*************************
      #ifdef WIN32
      #define INT64 "%I64d"
      #define UINT64 "%I64u"
      #else
      #define INT64 "%lld"
      #define UINT64 "%llu"
      #endif
      
      //**************************CONSTANT***********************
      #define INF 0x3f3f3f3f
      
      // aply for the memory of the stack
      //#pragma comment (linker, "/STACK:1024000000,1024000000")
      //end
      
      
      int main(){
          int n,p,q;
          while(scanf("%d%d%d",&n,&p,&q)!=EOF){
              int s;
              s=n%(p+q);
              if(s>0&&s<=p) printf("LOST\n");
              else printf("WIN\n");
          }
          return 0;
      }
  • 相关阅读:
    逆袭之旅DAY31.XIA.JDBC
    逆袭之旅DAY30.XIA.集合
    亮晶晶幼儿园家校沟通平台的设计与实现
    逆袭之旅DAY28.XIA.异常处理
    LY.JAVA.DAY12.String类
    2018年7月23日-星期二
    LY.JAVA.DAY12.Scanner
    DAY27.XIA.面向對象
    职业生涯规划
    如何找到自己喜欢的职业
  • 原文地址:https://www.cnblogs.com/lanjiangzhou/p/3022982.html
Copyright © 2011-2022 走看看