HDU1048 盐水的故事 精度问题
生活随笔
收集整理的這篇文章主要介紹了
HDU1048 盐水的故事 精度问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
點擊打開鏈接
鹽水的故事
Time Limit: 2000/1000 MS (Java/Others)????Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 22530????Accepted Submission(s): 5703
Problem Description 掛鹽水的時候,如果滴起來有規律,先是滴一滴,停一下;然后滴二滴,停一下;再滴三滴,停一下...,現在有一個問題:這瓶鹽水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假設最后一滴不到D毫升,則花費的時間也算一秒),停一下的時間也是一秒這瓶水什么時候能掛完呢?
Input 輸入數據包含多個測試實例,每個實例占一行,由VUL和D組成,其中 0<D<VUL<5000。
Output 對于每組測試數據,請輸出掛完鹽水需要的時間,每個實例的輸出占一行。
Sample Input 10 1
Sample Output 13
Author lcy
Source 杭電ACM集訓隊訓練賽(IV)
Recommend Ignatius.L???|???We have carefully selected several similar problems for you:??1412?1406?1465?1321?1402
錯誤代碼 #include<bits/stdc++.h> using namespace std; int main() {//double v,d;//while(scanf("%lf%lf",&v,&d)!=EOF){int v,d;while(scanf("%d%d",&v,&d)!=EOF){int time=0,cnt=1,flag=0;while(v>0){for(int i=0;i<cnt;i++){v-=d;time++;if(v<=0) {flag=1;break;}}time++;cnt++;if(flag) break;}printf("%d\n",time-1);}return 0; }
模擬滴水過程:
200MS
#include<bits/stdc++.h> using namespace std; int main() {double v,d;while(scanf("%lf%lf",&v,&d)!=EOF){int time=0,cnt=1,flag=0;while(v>0){for(int i=0;i<cnt;i++){v-=d;time++;if(v<=0) {flag=1;break;}}time++;cnt++;if(flag) break;}printf("%d\n",time-1);}return 0; }首先判斷vul是否能被d整除,如果能整除,總滴數sum為vul/d,
否則,總滴數sum為(vul/d)+1,
然后計算使得1+2+3....n<=sum成立的最大項數
0MS
總結
以上是生活随笔為你收集整理的HDU1048 盐水的故事 精度问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HDU1407 测试你是否和LTC水平一
- 下一篇: Codeforces 982 C. Cu