传送门

最小割,割点,模板。。。

代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<cstring>
using namespace std;
void read(int &x) {
char ch; bool ok;
for(ok=0,ch=getchar(); !isdigit(ch); ch=getchar()) if(ch=='-') ok=1;
for(x=0; isdigit(ch); x=x*10+ch-'0',ch=getchar()); if(ok) x=-x;
}
#define rg register
const int maxn=1e5+10,inf=1e9;queue<int>q;bool vis[maxn];
int cnt=1,n,m,s,ss,tt,t,dis[maxn],pre[maxn],nxt[maxn],h[maxn],v[maxn],used[maxn],ans;
void add(int x,int y,int z)
{
pre[++cnt]=y,nxt[cnt]=h[x],h[x]=cnt,v[cnt]=z;
pre[++cnt]=x,nxt[cnt]=h[y],h[y]=cnt,v[cnt]=0;
}
bool bfs()
{
memset(dis,0,sizeof dis);
q.push(s),dis[s]=1;
while(!q.empty())
{
int x=q.front();q.pop();
for(rg int i=h[x];i;i=nxt[i])
if(v[i]&&!dis[pre[i]])dis[pre[i]]=dis[x]+1,q.push(pre[i]);
}
return dis[t];
}
int dfs(int x,int flow)
{
if(x==t||!flow)return flow;
int f=flow;
for(rg int i=h[x];i;i=nxt[i])
if(dis[pre[i]]>dis[x]&&v[i])
{
int y=dfs(pre[i],min(f,v[i]));
f-=y,v[i]-=y,v[i^1]+=y;
if(!f)return flow;
}
if(f==flow)dis[x]=-1;
return flow-f;
}
int main()
{
read(n),read(m),read(ss),read(tt),s=0,t=n*2+1,add(s,ss*2-1,inf),add(tt*2,t,inf);
for(rg int i=1,x;i<=n;i++)read(x),add(i*2-1,i*2,x);
for(rg int i=1,x,y;i<=m;i++)read(x),read(y),add(x*2,y*2-1,inf),add(y*2,x*2-1,inf);
for(;bfs();ans+=dfs(s,inf));printf("%d\n",ans);
}

最新文章

  1. JAVA的continue用法
  2. C#中 Request, Request.params , Request.querystring , Request.Form 区别 与联系用法
  3. Flex air修改外部xml文件 (转)
  4. step 4 GCD 队列演练
  5. 容器--ArrayList
  6. SQL Server Insert时开启显式事务
  7. Hibernate validation 注解 springmvc 验证 分组
  8. Swagger简介
  9. 国内下Android源码地址
  10. hdu 1205
  11. jQuery中delegate与on的用法与区别
  12. 第一次用上 Android Studio 2.3 过程及错误解决
  13. 延迟执行之 Invoke 函数
  14. mondb 常用命令学习记录
  15. 使用selenium操作ant design前端的页面,感觉页面没加载完
  16. Oracle存储过程procedure in、out、in out 模式参数【不发布,纯转】
  17. hibernate---级联保存、级联删除
  18. 洛谷.3807.[模板]卢卡斯定理(Lucas)
  19. ThinkPad T420 Fn+F5
  20. 20145308 《网络对抗》Web安全基础实践 学习总结

热门文章

  1. types of transfrmations
  2. [eMMC]eMMC读写性能测试
  3. ABAP读取工单状态 STATUS_READ
  4. Struts使用锚
  5. vue2.x源码理解
  6. UVA1025 A Spy in the Metro —— DP
  7. Gym - 100283F F. Bakkar In The Army —— 二分
  8. java hql case when 的用法
  9. python 基础之第八天--字典相关
  10. Linux-Bond-Configure