为了节省能量,我们会希望一个已经烧开了的水温度越低越好
那么可以得到结论,它要依次去碰当前温度从大到小的水
然后再把温度最高的烧开呗
可是直接模拟会T
稍微写一写大概能找到每次烧开花费能量的一个规律
但我哪找得出来啊
知道了以后也不会证
1 #include2 #define pa pair 3 #define CLR(a,x) memset(a,x,sizeof(a)) 4 using namespace std; 5 typedef long long ll; 6 const int maxn=1; 7 8 inline ll rd(){ 9 ll x=0;char c=getchar();int neg=1;10 while(c<'0'||c>'9'){ if(c=='-') neg=-1;c=getchar();}11 while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();12 return x*neg;13 }14 15 int main(){16 //freopen("","r",stdin);17 int i;18 int n=rd();19 double ans=0,t=420000.0/n;20 for(i=1;i<=n;i++){21 ans+=t,t=(t*(i*2-1))/(i*2);22 }23 printf("%.2lf\n",ans);24 return 0;25 }