題意:用m個機器,處理n個任務,每個任務必須在[si,ei]時間段完成,需要pi天才能完成。每個機器只能處理乙個任務,
即每天只能處理m個任務。
題解:可以採用貪心法處理,區間覆蓋問題,可以參見劉汝佳的書。
或者採用最大流,建圖:把每個任務和每一天看做乙個點,增加源點s和匯點t,在s和每個任務之間連一條邊,容量為持續
天數;在每一天和t之間連一條邊,容量為m;在每個任務和對應天數之間連一條邊,容量為1。然後最大流量即為所求。
#include
#include
#define inf 1<<29;
int m,n,ds;
int h[1010],vh[1010],flo,flag,cf_path,he[1010],nu;
struct ss
st[505000];
int source,sink;//起點 終點
void sap()
void add(int hea,int v,int s)
int dfs(int pos,int cost,int cnt)
int j,minh=cnt-1,lv=cost,d;
for(j=he[pos];j!=-1;j=st[j].ne)
if(h[v]max)
max=z;
if(ymin=y;
}ds+=max-min+1;
for(i=1;i<=max;i++)
add(i+m,1004,n);
if(maxflow(0,1004,ds)==all)
printf("case %d: yesn",++cas);
else
printf("case %d: non",++cas);
printf("n");
}return 0;
}
hdu3572 任務分配 最大流判斷滿流
題意 將n個任務分配為m個機器,給每個任務需要的天數 無需每天連續 和可以在哪些天去做該任務,求是否存在方案。典型的任務 x 天 y 二分最大流,因為這裡任務是與天的關係 處理器控制流量,源點向x部點,指需要的天數,任務xi,向可以做的天連,流量1,每個y部點向匯點連流量為m,表示該天最多用m個機器...
hdu3572 任務分配 最大流量推論全流
意甲冠軍 將n分配的任務m機。到的每個任務需要的天數 如果沒有持續的日常 並能做到在哪些天任務。詢問是否有計畫。典型的任務 x 日 y 一半的最大流量,因為這個任務是天之間的關係 處理器控制流。x 點,它指的是需要幾天。任務xi,為了能夠做到即使天,流1,個y部點向匯點連流量為m,表示該天最多用m個...
hdu3572線性尤拉篩
用線性篩來篩,複雜度o n include include define fi first define se second define mp make pair define pb push back define pii pair define c 0.5772156649 define pi...