CCPC-Wannafly Camp Day7 总结
7-8 7H. 游戏
有1到n这些数字各一个。你用这些数字进行若干轮游戏。 对于每一轮,如果剩下的数字个数超过1个,那么就等概率随机选择两个剩下的数字删去。如果这两个数字互质,得一分。 重复以上操作直到没数字可以删除为止。请问最后期望得多少分?
输入格式
一行一个整数n (1≤n≤5000)。
输出格式
输出一个最简约数
b
a
表示答案。
输入样例
2
4
输出样例
1/1
5/3
思路
一开始因为0/0直接输出了0,WA了好久……
#include<iostream>
#include<vector>
#define ll long long
using namespace std;
ll gcd(ll a, ll b)
{
if(a%b==0)
return b;
else
return gcd(b, a%b);
}
int main()
{
ll n, x=0, fenmu, fenzi;
cin>>n;
if(n==1)
{
cout<<"0/1"<<endl;
return 0;
}
for(ll i=1;