題意是xmm有m臺機器,要完成n個任務,每個任務同一時間內只能在一台機器上進行,每台機器同一時間內只能執行乙個任務。對於每個任務,耗時pi,要求在si~ei之間完成,乙個任務可以分成多個時間段完成。這題構好圖,dinic可ac,網上很多是用isap過的,可惜這種演算法我現在還不會。
ps:這道題其實半年前就看到過了,當時在搞圖論,搞到網路流,當時只學了ek演算法,結果被這道題卡住。。。網上搜到題解,全是isap,結果看不懂gap優化,一道題花了十多天沒搞定。結果從那時起,就沒怎麼弄圖論了,轉去學習其他東西。直到今天,終於把這道題ac了,實在感動。唉,感覺也是那時不太努力,現在更要抓緊了。
不多說,上**
#include#include#include#include#define inf 200000000
int n,m,p[505],s[505],e[505],first[1555],next[500005],idx,ad[1555],queue[100005],visit[1555],lever[1555],me,flow[1555][1555];
struct edge
en[500005];
int max(int a,int b)
int min(int a,int b)
void add(int x,int y,int f)
int bfs()
lever[0]=0;
visit[0]=1;
begin=0;end=1;
queue[0]=0;
while(begin!=end)}}
if(lever[n+me+1]==inf)
return 0;
else
return 1;
}int dfs(int s)
if(ad[s]==0)
break;}}
if(z==0)
return z;
}int main()
}for(i=1;i<=me;i++)
mf=0;
while(bfs())
if(mf==sum)
printf("case %d: yes\n\n",l);
else
printf("case %d: no\n\n",l);
}return 0;
}
HDU3549 網路流 模板
在此給出我的dinic和ek網路流模板,sap以及dinic的優化日後更新 以hdu3549為樣板給出我的模板 原題 如下 ek by acer.mo include include include include includeusing namespace std int n,m,i bool ...
hdu4280 網路流模版)
驗證了一下網路流的板子題 發現有乙個板子和kuangbin聚聚的板子效率相差不多可能還更高效 kuangbin聚聚寫的是非遞迴的 這個可能更容易敲一點 題目大意就是輸入n,m 找到s t 直接連圖求最大流 附鏈結 include include include include includeusin...
hdu3572 任務分配 最大流判斷滿流
題意 將n個任務分配為m個機器,給每個任務需要的天數 無需每天連續 和可以在哪些天去做該任務,求是否存在方案。典型的任務 x 天 y 二分最大流,因為這裡任務是與天的關係 處理器控制流量,源點向x部點,指需要的天數,任務xi,向可以做的天連,流量1,每個y部點向匯點連流量為m,表示該天最多用m個機器...