HDU 5881 Tea 思維規律

2022-07-05 14:06:10 字數 755 閱讀 6294

感謝

題意:有一壺水, 體積在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之前。現在...