文章目录
巴什博弈
一堆物品为n,轮流取,最大m最小为1
n
=
k
(
1
+
m
)
+
r
n = k(1+m)+r
n=k(1+m)+r,当
n
%
(
m
+
1
)
=
0
n\%(m+1)=0
n%(m+1)=0先手必输
总数为(1+m)*k1个,A方拿到x个,B方要拿走(m+1-x)个,这一回合总共拿到了m+1个
又一次进行最后都是B方最后拿完直到结束
先手必输
HDU4764
l类比操作
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n, k;
int main()
{
while (scanf("%lld%lld",&n,&k) && (n + k))
{
if ((n - 1) % (k + 1) == 0)
cout << "Jiang" << endl;
else
cout << "Tang" << endl;
}
return 0;
}