B. JOE is on TV!
题目链接B. JOE is on TV!
题目大意
一个人打败所有对手能够获得最大美金是多少,每一轮得到的钱是t/s,t是本轮失败的人数,s是本轮需要打败的总人数。
解题思路
因为当s>=2时,2/s < 1/s+1/(s-1),即每次淘汰一个为最优,级数求和即可
附上代码
跑一个for循环即可
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int INF=0x3f3f3f;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);cout.tie(0);
int n;
cin>>n;
double ans=0;
for(int i=1;i<=n;i++)
ans+=1.0/i;
cout<<fixed<<setprecision(12)<<ans<<endl;
return 0;
}