码迷,mamicode.com
首页 > 其他好文 > 详细

题解:[SDOI2008]烧水问题

时间:2018-11-03 11:18:51      阅读:107      评论:0      收藏:0      [点我收藏+]

标签:就是   space   double   return   lang   com   name   传递   scan   

思维题

其实就是找个规律

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

一步一步往后退可得到需要加热的为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 }

 

题解:[SDOI2008]烧水问题

标签:就是   space   double   return   lang   com   name   传递   scan   

原文地址:https://www.cnblogs.com/Aze-qwq/p/9899927.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!