多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > HDU 3572 網絡流

HDU 3572 網絡流

來源:程序員人生   發布時間:2016-07-23 10:27:39 閱讀次數:2448次

點擊打開鏈接

題意:n個工作,m個機器來完成,每一個工作有P,S,E,P代表這個工作需要P天,而S為最早開始的時間,E為最晚結束時間,每一個機器在固定時間只能做1個工作,問所有的工作能否在規定時間內完成

思路:由于每天的機器只能做1個工作,那末天數肯定是1部,就是2分圖的右部,然后左部應當是甚么呢,那就是n個工作了,然后流量,對每一個工作來講,它需要的天數就是源點到工作的流量,然后工作到右部的就是可以連的就是1,最后的m天呢,我之前是想著直接右部是m個機器的天數,發現太笨拙了,世界在每一個天數后面連向匯點的時候直接是m和之前就是1樣的嘛

#include <queue> #include <vector> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <iostream> #include <algorithm> using namespace std; typedef long long ll; typedef unsigned long long ull; const int inf=0x3f3f3f3f; const ll INF=0x3f3f3f3f3f3f3f3fll; const int maxn=1010; struct edge{ int to,cap,rev; edge(int a,int b,int c){to=a;cap=b;rev=c;} }; vector<edge>G[maxn]; int level[maxn],iter[maxn]; void add_edge(int from,int to,int cap){ G[from].push_back(edge(to,cap,G[to].size())); G[to].push_back(edge(from,0,G[from].size()⑴)); } void bfs(int s){ memset(level,⑴,sizeof(level)); queue<int>que;level[s]=0; que.push(s); while(!que.empty()){ int v=que.front();que.pop(); for(unsigned int i=0;i<G[v].size();i++){ edge &e=G[v][i]; if(e.cap>0&&level[e.to]<0){ level[e.to]=level[v]+1; que.push(e.to); } } } } int dfs(int v,int t,int f){ if(v==t) return f; for(int &i=iter[v];i<G[v].size();i++){ edge &e=G[v][i]; if(e.cap>0&&level[v]<level[e.to]){ int d=dfs(e.to,t,min(f,e.cap)); if(d>0){ e.cap-=d; G[e.to][e.rev].cap+=d; return d; } } } return 0; } int max_flow(int s,int t){ int flow=0; while(1){ bfs(s); if(level[t]<0) return flow; memset(iter,0,sizeof(iter)); int f; while((f=dfs(s,t,inf))>0) flow+=f; } } int P[maxn],E[maxn],S[maxn]; int main(){ int T,n,m,cas=1; scanf("%d",&T); while(T--){ scanf("%d%d",&n,&m); for(int i=0;i<maxn;i++) G[i].clear(); int max1=0,sum=0; for(int i=1;i<=n;i++){ scanf("%d%d%d",&P[i],&S[i],&E[i]); sum+=P[i]; if(E[i]>max1) max1=E[i]; } for(int i=1;i<=n;i++) add_edge(0,i,P[i]); for(int i=1;i<=n;i++){ for(int j=S[i];j<=E[i];j++){ add_edge(i,j+n,1); } } for(int i=1;i<=max1;i++) add_edge(i+n,n+max1+1,m); int ans=max_flow(0,n+max1+1); if(ans==sum) printf("Case %d: Yes\n",cas++); else printf("Case %d: No\n",cas++); printf("\n"); } return 0; }

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 明星三级国产免费播放 | 国产在线永久视频 | 噜噜噜在线视频 | 久久久久无码国产精品一区 | 欧美成人中文字幕dvd | 欧美色欧美亚洲另类二区精品 | 免费精品国产福利片 | 国产一区二区三区日韩欧美 | 国产欧美日韩在线观看一区二区三区 | 亚洲 自拍 另类 欧美 综合 | 午夜爽爽爽视频 | 老司机午夜精品99久久免费 | 欧美a色 | 成人精品一区二区不卡视频 | 99热自拍 | 日本亚洲精品成人 | 亚洲欧美精品中文字幕 | 图片区小说区av区 | 亚洲自拍偷拍网 | 欧美激情伊人 | 欧美性大战久久久久久 | 宇都宫紫苑(rion)在线播放 | xxxxxx日本 | 精品一久久香蕉国产二月 | 亚洲欧美久久婷婷爱综合一区天堂 | 国产精品99爱免费视频 | 一区二区三区四区国产 | 日韩欧美亚州 | 最近的免费中文字幕视频 | 免费视频一区二区性色 | 99久久精品国产国产毛片 | 久久精品2020| 欧美日韩在线精品一区二区三区 | 青青草国产免费国产是公开 | 亚洲不卡在线观看 | 亚洲欧美自拍另类图片色 | 精品国产一区二区三区在线 | 国产在线精品一区二区不卡 | 国产精品亚洲欧美 | 免费日韩一级片 | 国语精品91自产拍在线观看二区 |