题解:[SDOI2008]烧水问题

思维题

其实就是找个规律

其实类似于贪心,把一杯水的热量尽量全部传递,

一步一步往后退可得到需要加热的为

        t(n+1)/t(n)=1-1/2n  

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 int n;
 6 int main(){
 7     scanf("%d",&n);
 8     double ans, now;
 9     now=420000.0/n;
10     for(int i=1; i<=n; i++){
11         ans+=now;
12         now*=(1-0.5/i);
13     }
14     printf("%.2lf",ans);
15     return 0;
16 }
原文地址:https://www.cnblogs.com/Aze-qwq/p/9899927.html