感謝
題意:有一壺水, 體積在l
和r
之間, 有兩個杯子, 你要把水倒到兩個杯子裡面, 使得杯子水體積幾乎相同(體積的差值小於等於1),
並且使得壺裡剩下水體積不大於1. 你無法測量壺裡剩下水的體積, 問最小需要倒水的次數。
題解:r<=1 不用倒就行了 0次
r<=2 倒一次就行了 1單位 1次
r<=l+3 先在左邊倒入l/2,在右邊倒入l/2+1 2次
以上為特判
當l<=1時,那就是在左邊倒1,然後輪流倒2 茶壺剩1 1+(r-1)/2 (r+1)/2次-----------(r-1)/2第一次後最多還能倒幾次二,每次二都維持平衡
否則 先倒l/2 再倒l/2+1 然後輪流倒2 茶壺剩1 2+(r-l-2)/2 (r-l)/2+1次---------------前兩次平衡,最多還能倒(r-l-2)/2次二
#include__int64 l,r,flag;intmain()
if(r<=2)
if(r<=l+3)
if(l<=1)flag=(r+1)/2
;
else flag=(r-l)/2+1
; printf(
"%i64d\n
",flag);
} return
0;
}
HDU5881 區間的討論
1.題目鏈結。題目大意 有乙個水壺和兩隻水杯,給出水壺體積的區間 l,r 現在把水壺中的水倒出來,使得兩隻水杯中的水的體積相差不超過1,水壺中留下的水的體積也不超過1.求出最少需要多少不能夠完成這個操作。2.emmm,乙個分析題。直接分析一些這個區間的上下界和區間的長度,分類是挺多的,不容易想全。但...
uvalive 5881 map 搜尋記錄
資料量炒雞大 所以很容易超時 一旦出現巢狀迴圈 必定超時 先放出我的超時 include includeint num 1000010 int s 1000010 int main for int i 0 i q i if h 0 printf ok n 否則輸出ok return 0 之後 運ma...
hdu1285 hdu4857 拓撲排序
一 原題內容 problem description 有n個比賽隊 1 n 500 編號依次為1,2,3,n進行比賽,比賽結束後,裁判委員會要將所有參賽隊伍從前往後依次排名,但現在裁判委員會不能直接獲得每個隊的比賽成績,只知道每場比賽的結果,即p1贏p2,用p1,p2表示,排名時p1在p2之前。現在...