BNUOJ 44580 Araleii & Bill的冠名权争夺战 again

来源:互联网 发布:海文网络计划 编辑:程序博客网 时间:2024/06/13 09:07

题意:给出n颗石子,分别编号为1....n,由A先选取,然后b选取,以此类推,求出最后哪个人胜了。选取条件是本次选择数大于上次选择的数或者根据特殊要求,判断是否谁能胜利

链接:http://www.bnuoj.com/v3/problem_show.php?pid=44580

思路:分两种情况讨论,当A取子正好必胜时,A胜;当A无必胜可能时,则B必胜,则A可以直接取出去B的那个点到必胜点。其实不难。博弈问题,反证一下就说明A先手必胜了。

注意点:无


以下为AC代码:

UsernameRunIDIDResultLanguageTimeMemoryLengthSubmit Timeluminous11436284CAcceptedGNU C++924 ms1792 KB990 B2014-12-26 20:43:07

#include <iostream>#include <cstdio>#include <string>#include <cstring>#include <vector>#include <deque>#include <list>#include <cctype>#include <algorithm>#include <climits>#include <queue>#include <stack>#include <cmath>#include <map>#include <set>#include <iomanip>#include <cstdlib>#include <ctime>#define ll long long#define ull unsigned long long#define all(x) (x).begin(), (x).end()#define clr(a, v) memset( a , v , sizeof(a) )#define pb push_back#define mp make_pair#define read(f) freopen(f, "r", stdin)#define write(f) freopen(f, "w", stdout)using namespace std;int main(){    int t;    cin >> t;    int m, n;    while ( t -- )    {        cin >> m >> n;        int a, b;        for ( int i = 0; i < n; i ++ )        {            cin >> a >> b;        }        cout << "Bill will lose HAHA" << endl;    }    return 0;}


0 0