Codeforces Round #614 (Div. 2)B. JOE is on TV!

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;
}
发布了8 篇原创文章 · 获赞 3 · 访问量 4128

猜你喜欢

转载自blog.csdn.net/Fiveneves/article/details/104069743