题目描述:
博弈论又被称为对策论(GameTheory)既是现代数学的一个新分支,也是运筹学的一个重要学科。
博弈论主要研究公式化了的激励结构间的相互作用。是研究具有斗争或竞争性质现象的数学理论和方法。博弈论考虑游戏中的个体的预测行为和实际行为,并研究它们的优化策略。生物学家使用博弈理论来理解和预测进化论的某些结果。
博弈论已经成为经济学的标准分析工具之一。在生物学、经济学、国际关系、计算机科学、政治学、军事战略和其他很多学科都有广泛的应用。
现在我们讨论博弈论当中一个简单的问题 ---bash对弈
只有n个物品,两个人轮流从这堆物品中取物,规定每次至少取一个,最多取m个。最后取光者得胜。(或者说无法继续取下去的人失败),假设他们都遵循最优的方法去取,请问谁能赢?
输入:
输入包含多组测试数据。第一行有一个整数T,代表数据组数。
对于每组测试数据
第一行包括两个用空格隔开的两个整数 n和 m (1≤ n,k ≤10^6 ).
输出:
对于每个测试案例首先输出 ”Case #Ti:“ Ti代表第i组测试数据
如果首先取得人可以获胜输出“WIN”;否则输出“GGWP”;
样例输入:
4 3
100 30
样例输出:
Case #1:
GGWP
Case #2:
WIN
老题,直接上代码
#include<iostream> using namespace std; int main() { int n,m,t; cin>>t; for(int i=1;i<=t;i++) { cout<<"Case #"<<i<<":"<<endl; cin>>n>>m; if(n%(m+1)==0) cout<<"GGWP"<<endl; else cout<<"WIN"<<endl; } return 0; }