bzoj 3876: [Ahoi2014]支线剧情
就是加一个1的下界就好了。
#include<bits/stdc++.h>
#define N 100005
#define LL long long
#define inf 0x3f3f3f3f
#define ls tr[x][0]
#define rs tr[x][1]
using namespace std;
inline int ra()
{
int x=,f=; char ch=getchar();
while (ch<'' || ch>'') {if (ch=='-') f=-; ch=getchar();}
while (ch>='' && ch<='') {x=x*+ch-''; ch=getchar();}
return x*f;
}
struct node{
int c,v,from,to,next;
}e[N];
int tot=,ans,from[N],n,m,S,T,head[N],cnt,dis[N],q[N<<];
bool inq[N];
void ine(int x, int y, int v, int c)
{
e[++tot].to=y; e[tot].next=head[x]; head[x]=tot;
e[tot].v=v; e[tot].c=c; e[tot].from=x;
}
void insert(int x, int y, int c, int v)
{
ine(x,y,v,c); ine(y,x,-v,);
}
bool spfa()
{
for (int i=; i<=n+; i++) dis[i]=inf;
int l=,r=; q[]=S; dis[S]=; inq[S]=;
while (l<r)
{
int x=q[l++];
for (int i=head[x];i;i=e[i].next)
if (dis[e[i].to]>dis[x]+e[i].v && e[i].c)
{
dis[e[i].to]=dis[x]+e[i].v;
from[e[i].to]=i;
if (!inq[e[i].to])
{
inq[e[i].to]=;
q[r++]=e[i].to;
}
}
inq[x]=;
}
if (dis[T]==inf) return ;
return ;
}
void mcf()
{
int x=inf;
for (int i=from[T];i;i=from[e[i].from]) x=min(x,e[i].c);
for (int i=from[T];i;i=from[e[i].from]) ans+=x*e[i].v,e[i].c-=x,e[i^].c+=x;
}
void fyl()
{
while (spfa()) mcf();
}
int main()
{
n=ra();
S=n+; T=n+;
for (int i=; i<=n; i++)
{
int cnt=ra();
insert(i,T,cnt,);
if (i!=) insert(i,,inf,);
for (int j=; j<=cnt; j++)
{
int x=ra(),v=ra();
insert(S,x,,v);
insert(i,x,inf,v);
}
}
fyl();
cout<<ans;
return ;
}
bzoj 3876: [Ahoi2014]支线剧情的更多相关文章
- bzoj 3876 [Ahoi2014]支线剧情(有上下界的最小费用流)
3876: [Ahoi2014]支线剧情 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 484 Solved: 296[Submit][Status ...
- BZOJ 3876: [Ahoi2014]支线剧情 [上下界费用流]
3876: [Ahoi2014]支线剧情 题意:每次只能从1开始,每条边至少经过一次,有边权,求最小花费 裸上下界费用流...每条边下界为1就行了 注意要加上下界*边权 #include <io ...
- BZOJ 3876: [Ahoi2014]支线剧情 带下界的费用流
3876: [Ahoi2014]支线剧情 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=3876 Description [故事背景] 宅 ...
- 【有源汇上下界费用流】BZOJ 3876 [Ahoi2014]支线剧情
题目链接: http://www.lydsy.com:808/JudgeOnline/problem.php?id=3876 题目大意: 给定一张拓扑图(有向无环图),每条边有边权,每次只能从第一个点 ...
- BZOJ 3876:支线剧情(有下界最小费用最大流)
3876: [Ahoi2014]支线剧情 Description [故事背景]宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩怨情仇的剧 ...
- [Ahoi2014]支线剧情[无源汇有下界最小费用可行流]
3876: [Ahoi2014]支线剧情 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1538 Solved: 940[Submit][Statu ...
- 【BZOJ3876】[Ahoi2014]支线剧情 有上下界费用流
[BZOJ3876][Ahoi2014]支线剧情 Description [故事背景] 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩 ...
- 【BZOJ3876】 [Ahoi2014]支线剧情
Description [故事背景] 宅男JYY非常喜欢玩RPG游戏,比如仙剑,轩辕剑等等.不过JYY喜欢的并不是战斗场景,而是类似电视剧一般的充满恩怨情仇的剧情.这些游戏往往 都有很多的支线剧情,现 ...
- bzoj 3876: [Ahoi2014&Jsoi2014]支线剧情【有上下界有源汇最小费用最大流】
每条边流量有下界有费用,很显然是有上下界有源汇最小费用最大流 连边(s,1,(0,inf),0),(i,t,(0,inf),0),表示从1出发inf次从每个点结束inf次 连边(i,j,(1,inf) ...
随机推荐
- Unity 公告板 Billboard
创建脚本如下 Billboard.cs using UnityEngine; using System.Collections; public class Billboard : MonoBehavi ...
- 为什么mysql having的条件表达式可以直接使用select后的别名?
SQL语句的语法顺序: FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> UNION -&g ...
- FieldByName().AsFloat只可以保留四位小数,四位以上应使用Value
FieldByName('a').AsFloat to FieldByName('a').Value
- WINccflexiable2008 的水箱控制上位机HMI仿真
步骤1 将PLC程序编写完成,CPU为314-2DP 符号表中的符号可以被所有逻辑块调用 步骤2 组态PLC300与西门子触摸屏170系列 TP177B CLOLOR PN/DP的MPI通信. 步骤3 ...
- day01-Python运维开发基础
还是用思维导图来一遍,印象更深!
- 安卓:从assets目录下复制文件到指定目录
有些时候我们直接将某些资源文件内置到apk中,便于直接使用. 1.首先将文件放置在项目/app/src/main/assets目录中 2.功能代码: public void copyFile(Stri ...
- 基于vue-router的移动端网页的路由管理
本篇代码示例:github 前提:不关注移动端浏览器的前进事件 涵盖功能: 1,管理路由的历史记录 2,切页动画的实现 3,处理流程类页面的回退事件 描述: 流程类页面的回退事件的解释: 以注册 ...
- R 误差自相关与DW检验
R语言进行DW检验: library(lmtest) dw = dwtest(fm1) > dw Durbin-Watson test data: fm1 DW = 2.4994, p-valu ...
- Codeforces Forethought Future Cup Elimination Round 选做
1146C Tree Diameter 题意 交互题.有一棵 \(n(n\le 100)\) 个点的树,你可以进行不超过 \(9\) 次询问,每次询问两个点集中两个不在同一点集的点的最大距离.求树的直 ...
- leetcode1302 Deepest Leaves Sum
""" Given a binary tree, return the sum of values of its deepest leaves. Example 1: I ...