首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

HDU 2897 偶遇明下 (博弈)

2013-11-01 
HDU 2897 邂逅明下(博弈)题意:给你n、p、q,每次操作是令n减小 [p, q]区间中的数,当n p时必须全部取完了,取

HDU 2897 邂逅明下 (博弈)

题意:

给你n、p、q,每次操作是令n减小 [p, q]区间中的数,当n < p时必须全部取完了,取完最后一次的人算输,问先手必胜还是必败。


解题思路:

这种非常类似巴什博弈,可以找出必胜区间和必败区间,[1,p]为必败区间, [p+1, p+q]为必胜区间,很容易发现接下来的区间都是按照这个规律的,这种找出必胜(必败)区间或者必胜(必败)点的方法很常见的。


/* **********************************************Author      : JayYeCreated Time: 2013-10-31 15:32:47File Name   : JayYe.cpp*********************************************** */#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int main() {    int n, p, q;    while(scanf("%d%d%d", &n, &p, &q) != -1) {        if(n <= p)  {            puts("LOST");            continue;        }        n -= p;        if( n % (p+q) == 0 || n % (p+q) > q)  puts("LOST");        else    puts("WIN");    }    return 0;}


热点排行