题解:[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 }
"Hello World!"