网络流建图。

从S向每个点连边,从每个点向T连边。

每条树边反向连一条下界为1,上界inf的边。

跑最小流。

注意加当前弧优化。

#include<cstdio>
#include<algorithm>
#define inf 0x3f3f3f3f
#define N 500005
#define M 5000005
using namespace std;
int head[N],ver[M],nxt[M],f[M],tot,ch[N],cur[M];
void add(int a,int b,int c)
{
tot++;nxt[tot]=head[a];head[a]=tot;ver[tot]=b;f[tot]=c;
tot++;nxt[tot]=head[b];head[b]=tot;ver[tot]=a;f[tot]=0;
return ;
}
int S,T,tim;
int vis[100005],q[M];
bool tell()
{
tim++;
int l=1,r=1;q[1]=S;
ch[S]=0;vis[S]=tim;
while(l<=r)
{
int tmp=q[l++];
for(int i=head[tmp];i;i=nxt[i])
{
if(f[i]&&vis[ver[i]]!=tim)
{
ch[ver[i]]=ch[tmp]+1;
vis[ver[i]]=tim;
q[++r]=ver[i];
}
}
}
return vis[T]==tim;
}
int zeng(int a,int b)
{
if(a==T)return b;
int r=0;
for(int i=cur[a];i&&b>r;i=nxt[i])
{
if(ch[ver[i]]==ch[a]+1&&f[i])
{
int t=zeng(ver[i],min(b-r,f[i]));
r+=t;f[i]-=t;f[i^1]+=t;
if(f[i]>0)cur[a]=i;
}
}
if(!r)ch[a]=-1;
return r;
}
int dinic()
{
int r=0,t;
while(tell())
{
for(int i=0;i<=T;i++)cur[i]=head[i];
while(t=zeng(S,inf))r+=t;
}
return r;
}
int n;
int ru[N],chu[N];
int main()
{
scanf("%d",&n);int t1,t2;
tot=1;
for(int i=1;i<n;i++)
{
scanf("%d%d",&t1,&t2);
t1++;t2++;
ru[t2]++;chu[t1]++;
add(t1,t2,inf);
}
int TT=n+1,SS=0;
for(int i=1;i<=n;i++)
{
add(SS,i,inf);add(i,TT,inf);
}
S=n+2;T=n+3;
for(int i=1;i<=n;i++)
{
if(chu[i]>ru[i])
{
add(i,T,chu[i]-ru[i]);
}
else if(ru[i]>chu[i])
{
add(S,i,ru[i]-chu[i]);
}
}
dinic();
add(TT,SS,inf);
dinic();
printf("%d\n",f[tot]);
return 0;
}

  

bzoj 4464 : [Jsoi2013]旅行时的困惑的更多相关文章

  1. bzoj 4464: [Jsoi2013]旅行时的困惑【贪心】

    据说正解是有上下界最小流,但是这种1e5的玩意问什么要跑网络流啊-- 贪心即可,注意一点是可以有多条路径经过一条边-- 以1为根,设d[u][0/1]为u到父亲的边是向下/向上,g记录这个点儿子中不能 ...

  2. 「JSOI2013」旅行时的困惑

    「JSOI2013」旅行时的困惑 传送门 由于我们的图不仅是一个 \(\text{DAG}\) 而且在形态上还是一棵树,也就是说我们为了实现节点之间互相可达,就必须把每条边都覆盖一次,因为两个点之间的 ...

  3. BZOJ 4464 旅行时的困惑 最小流

    题面: Waldives 有 N 个小岛.目前的交通系统中包含 N-1 条快艇专线,每条快艇 专线连接两个岛.这 N-1条快艇专线恰好形成了一棵树. 由于特殊的原因,所有N-1条快艇专线都是单向的.这 ...

  4. (RERERERERERERERERERERE) BZOJ 2746: [HEOI2012]旅行问题

    二次联通门 : BZOJ 2746: [HEOI2012]旅行问题 神TM STL的vector push_back进一个数后取出时就变成了一个很小的负数.. 调不出来了, 不调了 #include ...

  5. BZOJ 3531 [Sdoi2014]旅行 树链剖分+动态开点线段树

    题意 S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天面条神教.隐形独角兽教.绝地教都是常见的信仰. 为了方便,我们用 ...

  6. BZOJ 3531: [Sdoi2014]旅行 [树链剖分]

    3531: [Sdoi2014]旅行 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 1685  Solved: 751[Submit][Status] ...

  7. bzoj 3531 [Sdoi2014]旅行(树链剖分,线段树)

    3531: [Sdoi2014]旅行 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 876  Solved: 446[Submit][Status][ ...

  8. bzoj 3531: [Sdoi2014]旅行

    Description S国有N个城市,编号从1到N.城市间用N-1条双向道路连接,满足从一个城市出发可以到达其它所有城市.每个城市信仰不同的宗教,如飞天面条神教.隐形独角兽教.绝地教都是常见的信仰. ...

  9. bzoj 3531 [Sdoi2014]旅行 (树剖+线段树 动态开点)

    3531: [Sdoi2014]旅行 Time Limit: 40 Sec  Memory Limit: 512 MBSubmit: 2984  Solved: 1312[Submit][Status ...

随机推荐

  1. Spring+SpringMVC+MyBatis整合基础篇(三)搭建步骤

    作者:13GitHub:https://github.com/ZHENFENG13版权声明:本文为原创文章,未经允许不得转载. 框架介绍 Spring SpringMVC MyBatis easyUI ...

  2. mssql循环记录之while方法

    1.定义变量 Declare @i Int 2.获取单条记录 Select @i=Min([id]) From [数据库名] Where <检索条件> 3.While循环 While @i ...

  3. 173. Insertion Sort List【LintCode by java】

    Description Sort a linked list using insertion sort. Example Given 1->3->2->0->null, ret ...

  4. 新手向:从不同的角度来详细分析Redis

    最近对华为云分布式缓存产品Redis做了一些研究,于是整理了一些基本的知识拿出来与大家分享,首先跟大家分享的是,如何从不同的角度来详细使用Redis. 小编将从以下9个角度来进行详细分析,希望可以帮到 ...

  5. PHPMyWind5.4存储XSS(CVE-2017-12984)

    0x0 环境 操作机:xp   192.168.110.128 目标:win2003    192.168.110.133 目标cms:PHPMyWind5.4 0x11 漏洞介绍 允许恶意访问者在客 ...

  6. BackBone及其实例探究

      摘要 我们小组对MVC框架进行了学习.我的队友们已经在博客中对MVC的设计模式及优缺点进行了详细的探讨与分析,因此我的博客中只对MVC进行简单的介绍,而我将把重心放在Backbone MVC框架一 ...

  7. linux内核分析第三周

    20135103王海宁 linux内核分析第三周 http://mooc.study.163.com/course/USTC-1000029000  按照课堂提供的方法,命令行一行行敲上去,我是手机缓 ...

  8. 《Linux内核设计与实现》第四周读书笔记——第五章

    <Linux内核设计与实现>第四周读书笔记--第五章 20135301张忻 估算学习时间:共1.5小时 读书:1.0 代码:0 作业:0 博客:0.5 实际学习时间:共2.0小时 读书:1 ...

  9. Daily Scrum - 11/23

    今天更新blog时发现了老师对我们daily scrum提的要求,从明天起除了简要记录组会的主要内容之外,还会总结上一个工作日每个组员的工作进度.代码提交情况和燃尽图. 今天会议内容主要是人千.章玮同 ...

  10. [Week2 作业] 代码规范之争

    这四个问题均是出自 http://goodmath.scientopia.org/2011/07/14/stuff-everyone-should-do-part-2-coding-standards ...