高考結束後,同學們大都找到了乙份臨時工作,渴望掙得藝些零用錢。從今天起,matrix67將連續工作n天(1<=n<=100000)。 每一天末他可以領取當天及前面若干天裡沒有領取的工資,但他總共只有m(1<=m<=n)次領取⼯資的機會,matrix67已經知道了在 接下來的這n天裡每一天他可以賺多少錢。為了避免自己濫用零花錢,他希望知道如何安排領取工資的時間才能使得領到工資最多的那一次工資數額最小。注意:matrix67必須恰好領工資m次,且需要將所有的工資 全部領走(即最後一天末需要領一次工資)。
•換乙個思路,假設現在知道了最大值,那麼我們只需要掃一遍,檢查是否可能存在一種方案,使每一段的工資總和都不大於這個最大值。並且,若對於 答案x可行,那麼大於x的值作為最大值都可以!• 這就說明,答案是單調的!• 於是,我們每次二分列舉乙個最大值,並檢查是否合法。檢查是否合法就只需要用「貪心」的方法,從1到n掃一遍,每天能和之前並在一起不越界就並在一起,否則在前一天取完工資,從這天開始乙個新的取工資的週期。
具體見**:
#include#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;
int const max=100010;
int n,m,num;
int maxn=0,ans=0;
int a[max];
bool ss(int x) //貪心檢驗
i++;
} if(num>m) return false;
return true;
}int sss(int l,int r)
int main()
{ scanf("%d%d",&n,&m);
for(int i=0;i
BFS例題 A計畫
c ontr ibcontrib a11y accessibility menu.js 關於 bfs要點 1 若為可化為的座標系圖形,可用結構體儲存其x值,y值和步數。一般開now 和 next now用於取出佇列裡面的結構體 next用於上下左右的運動計算,並且push到佇列中。2 在運用佇列時,...
t035 收入計畫
time limit 1 second memory limit 32 mb 問題描述 高考結束後,同學們大都找到了乙份臨時工作,渴望掙得一些零用錢。從今天起,matrix67將連續工作n天 1 n 100 000 每 一天末他可以領取當天及前面若干天裡沒有領取的工資,但他總共只有m 1 m n 次...
二分答案 收入計畫
問題描述 高考結束後,同學們大都找到了乙份臨時工作,渴望掙得一些零用錢。從今天起,matrix67將連續工作n天。每一天末他可以領取當天及前面若干天裡沒有領取的工資,但他總共只有m次領取工資的機會。matrix67已經知道了在接下來的這n天裡每一天他可以賺多少錢。為了避免自己濫用零花錢,他希望知道如...