日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > POJ 3469(Dual Core CPU-最小割)[Template:網絡流dinic V2]

POJ 3469(Dual Core CPU-最小割)[Template:網絡流dinic V2]

來源:程序員人生   發布時間:2014-11-03 08:47:38 閱讀次數:3045次

Language:
Dual Core CPU
Time Limit: 15000MS   Memory Limit: 131072K
Total Submissions: 19321   Accepted: 8372
Case Time Limit: 5000MS

Description

As more and more computers are equipped with dual core CPU, SetagLilb, the Chief Technology Officer of TinySoft Corporation, decided to update their famous product - SWODNIW.

The routine consists of N modules, and each of them should run in a certain core. The costs for all the routines to execute on two cores has been estimated. Let's define them as Ai and Bi. Meanwhile, M pairs of modules need to do some data-exchange. If they are running on the same core, then the cost of this action can be ignored. Otherwise, some extra cost are needed. You should arrange wisely to minimize the total cost.

Input

There are two integers in the first line of input data, N and M (1 ≤ N ≤ 20000, 1 ≤ M ≤ 200000) .
The next N lines, each contains two integer, Ai and Bi.
In the following M lines, each contains three integers: abw. The meaning is that if module a and module b don't execute on the same core, you should pay extra w dollars for the data-exchange between them.

Output

Output only one integer, the minimum total cost.

Sample Input

3 1 1 10 2 10 10 3 2 3 1000

Sample Output

13

Source

POJ Monthly-⑵007.11.25, Zhou Dong


最小割的模板,其實就是最大流

注意:

Verson 2:

1.修復Bug,在本次模板中修改了q隊列的長度,


題目,裸最小割,

設S為用模塊A的集合,T為模塊B

s->任務i  //模塊B的cost

任務i->t  //模塊A的cost

任務i->任務j //(i,j)不在1個集合的cost,注意最小割,要2個方向(最小割只保證s->t沒路徑,t->s的路徑不用割)







#include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<functional> #include<iostream> #include<cmath> #include<cctype> #include<ctime> using namespace std; #define For(i,n) for(int i=1;i<=n;i++) #define Fork(i,k,n) for(int i=k;i<=n;i++) #define Rep(i,n) for(int i=0;i<n;i++) #define ForD(i,n) for(int i=n;i;i--) #define RepD(i,n) for(int i=n;i>=0;i--) #define Forp(x) for(int p=pre[x];p;p=next[p]) #define Forpiter(x) for(int &p=iter[x];p;p=next[p]) #define Lson (x<<1) #define Rson ((x<<1)+1) #define MEM(a) memset(a,0,sizeof(a)); #define MEMI(a) memset(a,127,sizeof(a)); #define MEMi(a) memset(a,128,sizeof(a)); #define INF (2139062143) #define F (100000007) #define MAXn (20000+10) #define MAXm (200000+10) #define MAXN (MAXn+2) #define MAXM ((MAXn*2+MAXm*2)*2+100) long long mul(long long a,long long b){return (a*b)%F;} long long add(long long a,long long b){return (a+b)%F;} long long sub(long long a,long long b){return (a-b+(a-b)/F*F+F)%F;} typedef long long ll; class Max_flow //dinic+當前弧優化 { public: int n,s,t; int q[MAXN]; int edge[MAXM],next[MAXM],pre[MAXN],weight[MAXM],size; void addedge(int u,int v,int w) { edge[++size]=v; weight[size]=w; next[size]=pre[u]; pre[u]=size; } void addedge2(int u,int v,int w){addedge(u,v,w),addedge(v,u,0);} bool b[MAXN]; int d[MAXN]; bool SPFA(int s,int t) { For(i,n) d[i]=INF; MEM(b) d[q[1]=s]=0;b[s]=1; int head=1,tail=1; while (head<=tail) { int now=q[head++]; Forp(now) { int &v=edge[p]; if (weight[p]&&!b[v]) { d[v]=d[now]+1; b[v]=1,q[++tail]=v; } } } return b[t]; } int iter[MAXN]; int dfs(int x,int f) { if (x==t) return f; Forpiter(x) { int v=edge[p]; if (weight[p]&&d[x]<d[v]) { int nowflow=dfs(v,min(weight[p],f)); if (nowflow) { weight[p]-=nowflow; weight[p^1]+=nowflow; return nowflow; } } } return 0; } int max_flow(int s,int t) { int flow=0; while(SPFA(s,t)) { For(i,n) iter[i]=pre[i]; int f; while (f=dfs(s,INF)) flow+=f; } return flow; } void mem(int n,int s,int t) { (*this).n=n; (*this).t=t; (*this).s=s; size=1; MEM(pre) } }S; int n,m; int main() { // freopen("poj3469.in","r",stdin); // freopen(".out","w",stdout); scanf("%d%d",&n,&m); int s=1,t=n+2; S.mem(n+2,s,t); For(i,n) { int ai,bi; scanf("%d%d",&ai,&bi); S.addedge2(i+1,t,ai); S.addedge2(s,i+1,bi); } For(i,m) { int a,b,w; scanf("%d%d%d",&a,&b,&w); S.addedge(a+1,b+1,w); S.addedge(b+1,a+1,w); } cout<<S.max_flow(s,t)<<endl; return 0; }





生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲成人精品一区二区三区 | 国产午夜精品久久久 | 粉嫩精品一区二区三区在线观看 | 精品在线免费观看 | 亚洲欧洲日本在线 | 九色在线播放 | 国产一区二区电影 | 2024国产精品视频 | 国产精品午夜视频 | 一极黄色大片 | 97成人在线视频 | 久久精品视频在线观看 | 欧美激情 在线 | 成人免费观看黄a大片夜月 日韩亚洲欧美一区 | 在线观看毛片网站 | 亚洲在线观看视频 | 久久久精品美女 | 久久国产精品免费 | 在线观看国产小视频 | 50岁女人一级毛片 | 看一级大毛片 | 日韩欧美区 | 免费看黄在线看 | 污黄网站 | 亚洲男人av | 日韩成人影院 | 久久免费一区 | av在线播放网站 | 国产精品久久久久一级毛片 | 99视频在线 | 亚洲福利视频一区二区 | 日韩免费观看视频 | av片免费| 欧美性猛交xxxx乱大交退制版 | 亚洲欧美久久 | 国产传媒在线 | 国产尤物av | 久久两性视频 | 九九九在线| 五月婷婷在线播放 | 国产成人毛片 |