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

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

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

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

注意点:无


以下为AC代码:

Username RunID ID Result Language Time Memory Length Submit Time
luminous11 436284 C Accepted GNU C++ 924 ms 1792 KB 990 B 2014-12-26 20:43:07
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#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;
}


你可能感兴趣的:(BNUOJ,模拟)