博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
UOJ 217 奇怪的线段树
阅读量:5958 次
发布时间:2019-06-19

本文共 1457 字,大约阅读时间需要 4 分钟。

http://uoj.ac/problem/217

题意就不X了,思路在这:

 

居然一开始把sap里面的mn设置为inf了,我是傻逼。。

#include
#include
#include
#include
#include
#define inf 0x3f3f3f3fint go[200005],first[200005],next[200005],flow[200005],op[200005],dis[200005],cnt[200005];int tot,S,T,t,s,sz,son[200005],du[200005],n,nodes;bool flag;int read(){ int t=0,f=1;char ch=getchar(); while (ch<'0'||ch>'9'){
if (ch=='-') f=-1;ch=getchar();} while ('0'<=ch&&ch<='9'){t=t*10+ch-'0';ch=getchar();} return t*f;}void insert(int x,int y,int z){ tot++; go[tot]=y; next[tot]=first[x]; first[x]=tot; flow[tot]=z;}void add(int x,int y,int z){ insert(x,y,z);op[tot]=tot+1; insert(y,x,0);op[tot]=tot-1;}void add(int x,int y,int low,int high){ int F=high-low; add(x,y,F);du[x]-=low;du[y]+=low;}int build(int l,int r,int op){ int k=++sz; add(s,k,0,inf);add(k+2*n-1,t,0,inf); add(4*n-2+l,k,0,inf);if (op&&r
=nodes) return sum; } if (flow[i]) mn=std::min(mn,dis[pur]); } if (sum==0){ cnt[dis[x]]--; if (cnt[dis[x]]==0){ dis[S]=nodes; }else{ dis[x]=mn+1; cnt[dis[x]]++; } } return sum;}int mxflow(){ int res=0,tim=0; while (dis[S]
0) add(S,i,du[i]); else if (du[i]<0) add(i,T,-du[i]); int ans1=mxflow(); memset(dis,0,sizeof dis); memset(cnt,0,sizeof cnt); add(t,s,inf); int ans=mxflow(); printf("%d\n",ans);}

 

转载于:https://www.cnblogs.com/qzqzgfy/p/5687821.html

你可能感兴趣的文章
Facebook 接入之获取各个配置参数
查看>>
linux的日志服务器关于屏蔽一些关键字的方法
查看>>
事情的两面性
查看>>
只要会营销,shi都能卖出去?
查看>>
sed单行处理命令奇偶行输出
查看>>
VC++深入详解学习笔记1
查看>>
安装配置discuz
查看>>
线程互互斥锁
查看>>
KVM虚拟机&openVSwitch杂记(1)
查看>>
win7下ActiveX注册错误0x80040200解决参考
查看>>
《.NET应用架构设计:原则、模式与实践》新书博客--试读-1.1-正确认识软件架构...
查看>>
2013 Linux领域年终盘点
查看>>
linux学习之查看程序端口占用情况
查看>>
相逢在栀枝花开的季节
查看>>
linux下git自动补全命令
查看>>
Ubuntu14.04LTS更新源
查看>>
Linux报“Unknown HZ value! (288) Assume 100”错误
查看>>
mysql多实例实例化数据库
查看>>
我的友情链接
查看>>
golang xml和json的解析与生成
查看>>