这是 Rockethon 2015 的一道题,也是我做codeforces的第一道题,在这里留个纪念。原题在

题意为:小明有n1个球,小红有n2个球,每轮游戏,小明可以扔掉a个球(1 <= a <= k1), 小红可以扔掉 (1 <= b <= k2)个球,小明先开始游戏,在小明和小红不是sb的情况下,要是轮到谁了,谁的球扔完了,那么这个人就输了。

输入 n1, n2, k1, k2 ,

输出 First (如果第一个人赢)或者 Second (要是第二个人赢)

我就想,要是小明和小红,每次都只仍1个,这样就能保证他们玩得越久,就等对方扔出更多的球,然后sb地输掉。每个人在每一轮都只仍1个的情况是最优的,这种情况下,只要n1 > n2时,小明就赢了,否则,小红赢。有没有看到原题中的 optimally,就是这么简单。

#include <iostream>
using namespace std;

int main(){
    int n1, n2, k1, k2;
    cin >> n1 >> n2 >> k1 >> k2;
    if(n1 > n2) cout << "First";
    else cout << "Second";
    return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

 posted on 2015-02-22 03:18  Rex7  阅读(190)  评论(0编辑  收藏  举报