P8507 毕业后-题解
2022.9.8 18:13 修改了部分错别字。
考场蒙了 分,看完 5ab 的讲解才会的
题意
给你两个正整数 且 ,让你求使得 的最大 。
解法
题意已经讲得很清楚了,就是解这个方程了。
暴力枚举? 这显然不行。
所以我们看一下面的式子:
这个式子的意思是如果 ,则 。
证明
考虑反证法,也就是如果 ,而
由 可得 。
那么 一定会比 大,矛盾,所以命题成立。
就这我们就可以把 变成 。
这样我们只要求 即可。
代码
#include<bits/stdc++.h>
using namespace std;
int a,b;
inline int read(){
int x=0;
bool flag=0;
char ch=getchar();
if(ch=='-'){
flag=1;
}
while(ch<'0'||ch>'9'){
ch=getchar();
}
while(ch>='0'&&ch<='9'){
x*=10,x+=ch-'0',ch=getchar();
}
if(flag) return -x;
return x;
}
int main(){
a=read(),b=read();
printf("%.10f\n",1.0*ci(b/a)/b);
return 0;
}

浙公网安备 33010602011771号