博弈-威佐夫博弈
2018-04-03 20:45
148 查看
有两堆各若干个物品,两个人轮流从某一堆或同时从两堆中取同样多的物品,规定每次至少取一个,多者不限,最后取光着得胜。
奇异局势的性质:
1.任何自然数都包含在一个且仅有一个奇异局势中;
2.任何操作都可以将奇异局势变为非奇异局势;
3.采用适当的方法,可以将非奇异局势变为奇异局势。
所以面对非奇异局势,先手必胜,否则先手必败。#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
int a,b,t;
cin>>a>>b;
double x=(1+sqrt(5.0))/2.0;
if(a>b)
swap(a,b);
t=(int)((b-a)*x);
if(t==a)
cout<<"先手必败"<<endl;
else
cout<<"先手必胜"<<endl;
}
奇异局势的性质:
1.任何自然数都包含在一个且仅有一个奇异局势中;
2.任何操作都可以将奇异局势变为非奇异局势;
3.采用适当的方法,可以将非奇异局势变为奇异局势。
所以面对非奇异局势,先手必胜,否则先手必败。#include<iostream>
#include<stdio.h>
#include<string.h>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<vector>
#include<math.h>
#include<algorithm>
using namespace std;
typedef long long ll;
int main()
{
int a,b,t;
cin>>a>>b;
double x=(1+sqrt(5.0))/2.0;
if(a>b)
swap(a,b);
t=(int)((b-a)*x);
if(t==a)
cout<<"先手必败"<<endl;
else
cout<<"先手必胜"<<endl;
}
相关文章推荐
- hdu2177威佐夫博弈
- hdu 2177 取(2堆)石子游戏(威佐夫博弈)
- 博弈论(巴什博奕,威佐夫博弈,尼姆博弈,斐波那契博弈,sg函数)
- HDU - 5973 HDU - 5973 威佐夫博弈,高精度BigDecimal
- [ACM] hdu 2177 取(2堆)石子游戏(威佐夫博弈)
- ACM-威佐夫博弈之取(2堆)石子游戏——hdu2177
- 【POJ1067】取石子游戏 威佐夫博弈 这种题真的有意义么?
- POJ1067 取石子游戏 威佐夫博弈
- POJ-1067 取石子游戏(威佐夫博弈)
- POJ1067之威佐夫博弈
- HDU2177——取(2堆)石子游戏(威佐夫博弈)
- 威佐夫博弈
- HDU 威佐夫博弈
- 博弈论-巴什博弈-斐波拉契数-尼姆游戏-拍卖土地-威佐夫博弈入门理解Java
- POJ 1067 取石子游戏(威佐夫博弈)
- HDU 5973-Game of Taking Stones(威佐夫博弈-JAVA BigDecimal)
- 51nod1072---威佐夫博弈(51nod基础:博弈)
- 巴什博弈、威佐夫博弈、尼姆博弈
- poj 1067 取石子游戏(威佐夫博弈)
- hdu 2177 取(2堆)石子游戏(威佐夫博弈)