這是一道高精度問題:
在自己錯了數十遍之後找到了不少規律:
首先是output limit exceeded:之前一直不知道是什麼意思,現在才知道是輸入輸出的精度有問題
1view code/**/
2 # include 3
using
namespace
std;45
intmain()619
else
if( vul==f )
2024
else
2531
else
3236
}37 vul = vul - i *d;38}
39 printf("
%lld\n
", t);40}
41return0;
42 }
然後就是中間**的精度問題了:
記住比較大小時,double型別跟double型別的比,int型別跟int型別的比,double要是跟int型別的比會有精度缺失
以下是ac**:
1view code/**/
2 # include 3
using
namespace
std;45
intmain()622
else
if( vul==f )
2327
else
if( r>=0.000001 )///
不能跟0比,(即不能用r>0來判)
2832
else
3337 vul = vul -f;38}
39 printf("
%lld\n
", t);40}
41return0;
42 }
1view code/**/
2 # include 3
using
namespace
std;45
intmain()622
else
if( vul==f )
2327
else
if( r==0.000000)28
32else
3337 vul = vul -f;38}
39 printf("
%lld\n
", t);40}
41return0;
42 }
ps.另一種ac**:
1 #include2view codeintmain()319
break;20
}21 v=v-i*d;
22 t=t+i;
23 t++;
2425
}26 printf("
%lld\n
",t);27}
28return0;
29 }
HDU 1408 鹽水的故事
掛鹽水的時候,如果滴起來有規律,先是滴一滴,停一下 然後滴二滴,停一下 再滴三滴,停一下.現在有乙個問題 這瓶鹽水一共有vul毫公升,每一滴是d毫公升,每一滴的速度是一秒 假設最後一滴不到d毫公升,則花費的時間也算一秒 停一下的時間也是一秒這瓶水什麼時候能掛完呢?輸入資料報含多個測試例項,每個例項佔...
鹽水的故事
problem description 掛鹽水的時候,如果滴起來有規律,先是滴一滴,停一下 然後滴二滴,停一下 再滴三滴,停一下.現在有乙個問題 這瓶鹽水一共有vul毫公升,每一滴是d毫公升,每一滴的速度是一秒 假設最後一滴不到d毫公升,則花費的時間也算一秒 停一下的時間也是一秒這瓶水什麼時候能掛完...
鹽水的故事
不要用等比數列求和的方法倒過來求停的次數,當剩餘的體積不夠下次滴的時候,退出迴圈,記錄迴圈次數,還有滴的時間可以用總vul除以x,得到的結果如果有小數,那麼加1秒 include include int main if y count 0 i i printf 最後丟擲的i的值為 d n int i...