SDUT 2778 小明的花費預算

2021-08-02 01:18:43 字數 1646 閱讀 8545

time limit: 1000ms memory limit: 65536kb

problem description

小明終於找到乙份工作了,但是老闆是個比較奇怪的人,他並不是按照每月每月的這樣發工資,他覺得你想什麼時候來取都可以,而小明恰好是乙個花錢比較大手大腳的人,所以他希望每次取得錢正好夠接下來的n個月的花費,以防浪費。

小明很懶,懶到他連錢都盡量不願多帶(只是嫌沉)。但是他在只有m次取錢的機會,所以他想要用m次把n個月的錢都取出來,但想要每次都盡量少取些。給你小明n個月的花費,還有可取的次數m,問小明在保證每次盡量少取些錢的情況下,最多的那次取了多少錢?當然,每次取錢只能取連續幾個月的花費。

input

多組輸入。

第一行是兩個整數,n(1 ≤ n ≤ 100,000)和m (1 ≤ m ≤ n)

接下來的n行是連續n個月的花費,第i+1行是第i個月的花費。

output

輸出滿足最大的總花費最小的那個組的總花費。

example input

5 3

3 2

9 4

1

example output

hint

將5個月分為3組,第一組(3,2),第二組(9),第三組(4,1),第二組的總花費最大為9,若按其他的方式分,花費最大的那一組的總花費將》=9.

author

lwnsubmit(帶注釋版)

#include 

using namespace std;

int n, m;

int n[100005];

int ans;

void binsearch(int low, int high)

}if(count > m)//需要取的次數大於允許取得次數,說明每次允許取的錢數太小了,就確定答案範圍一定在mid到high之間

binsearch(mid+1, high);

else

}int main()

binsearch(low, high);//二分的在這個範圍內精確答案

printf("%d\n", ans);

}return

0;}

submit(純**版)

#include 

using namespace std;

int n, m;

int n[100005];

int ans;

void binsearch(int low, int high)

}if(count > m)

binsearch(mid+1, high);

else

}int main()

binsearch(low, high);

printf("%d\n", ans);

}return

0;}

SDUT 2778 小明的花費預算(二分答案)

time limit 1000ms memory limit 65536k 有疑問?點這裡 小明終於找到乙份工作了,但是老闆是個比較奇怪的人,他並不是按照每月每月的這樣發工資,他覺得你想什麼時候來取都可以,取的是前邊連續幾個月中沒有取的工資,而小明恰好是乙個花錢比較大手大腳的人,所以他希望每次取得錢...

二分答案 小明的花費預算

小明的花費預算 time limit 1000ms memory limit 65536k 題目描述 小明終於找到乙份工作了,但是老闆是個比較奇怪的人,他並不是按照每月每月的這樣發工資,他覺得你想什麼時候來取都可以,取的是前邊連續幾個月中沒有取的工資,而小明恰好是乙個花錢比較大手大腳的人,所以他希望...

小明的骰子(SDUT 2859)

time limit 1000ms memory limit 65536k 有疑問?點這裡 眾所周知,小明非常喜歡玩骰子。一天,小芳問小明乙個問題。一次性拋n個骰子,一共能丟擲幾種結果?小明不想讓小芳覺得自己回答不上來,所以小明來求助於你。你一定要幫幫小明。首先輸入乙個整數t,代表有t組資料。接下來...