http://www.lydsy.com/JudgeOnline/problem.php?id=2055

某个国家必须经过vi次,

可以转化为上下界都为vi的边

对这张图做有源汇上下界可行最小费用流

按无源汇上下界可行流建好图,跑超级源点到超级汇点的最小费用最大流即可

#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm> using namespace std; #define N 205
#define M 10500 const int inf=1e9; int src,decc;
int S,T; int tot=;
int front[N],to[M<<],nxt[M<<],cap[M<<],val[M<<],from[M<<]; int cost; int dis[N];
bool vis[N]; void read(int &x)
{
x=; int f=; char c=getchar();
while(!isdigit(c)) { if(c=='-') f=-; c=getchar(); }
while(isdigit(c)) { x=x*+c-''; c=getchar(); }
x*=f;
} void add(int u,int v,int w,int f)
{
to[++tot]=v; nxt[tot]=front[u]; front[u]=tot; from[tot]=u; cap[tot]=w; val[tot]=f;
to[++tot]=u; nxt[tot]=front[v]; front[v]=tot; from[tot]=v; cap[tot]=; val[tot]=-f;
} int agument(int now,int flow)
{
vis[now]=true;
if(now==T)
{
cost-=dis[S]*flow;
return flow;
}
int delta;
for(int i=front[now];i;i=nxt[i])
{
if(cap[i] && !vis[to[i]] && dis[to[i]]==dis[now]+val[i])
{
delta=agument(to[i],min(flow,cap[i]));
if(delta)
{
cap[i]-=delta;
cap[i^]+=delta;
return delta;
}
}
}
return ;
} bool retreat()
{
if(vis[T]) return true;
int mi=inf;
for(int i=;i<=tot;++i)
if(cap[i] && vis[from[i]] && !vis[to[i]])
mi=min(mi,dis[from[i]]+val[i]-dis[to[i]]);
if(mi==inf) return false;
for(int i=;i<=T;++i)
if(vis[i]) dis[i]-=mi;
return true;
} void zkw()
{
do
{
memset(vis,false,sizeof(vis));
agument(S,inf);
}while(retreat());
cout<<cost;
} int main()
{
int n,m;
read(n); read(m);
src=; decc=(n<<|)+;
int ss=;
S=decc+; T=S+;
add(src,T,m,);
add(S,ss,m,);
int x;
for(int i=;i<=n;++i)
{
read(x);
add(ss,i<<,m,);
add(i<<|,decc,m,);
add(i<<,T,x,);
add(S,i<<|,x,);
}
int k;
for(int i=;i<n;++i)
{
for(int j=i+;j<=n;++j)
{
read(x);
if(x==-) continue;
add(i<<|,j<<,m,x);
}
}
add(decc,src,m,);
zkw();
}

bzoj千题计划159:bzoj2055: 80人环游世界(有源汇上下界可行最小费用流)的更多相关文章

  1. [bzoj2055]80人环游世界[网络流,上下界网络流]

    手动画了整张图,,算是搞懂了吧,, #include <bits/stdc++.h> #define INF 0x3f3f3f3f using namespace std; templat ...

  2. bzoj 2055: 80人环游世界【有上下界有源汇最小费用最大流】

    连有上下界的边(ss,i,(0,m),0),(i',t,(0,m),0),表示从任意点开始和结束 连(i,j,(0,m),d[i][j]),表示可以买票飞过去 连(i,i',(v[i],v[i]),0 ...

  3. BZOJ2055: 80人环游世界

    题解: 总算A掉了,各种蛋疼... int main() { freopen("input.txt","r",stdin); freopen("out ...

  4. [BZOJ2055]80人环游世界 有上下界最小费用最大流

    2055: 80人环游世界 Time Limit: 10 Sec  Memory Limit: 64 MB Description     想必大家都看过成龙大哥的<80天环游世界>,里面 ...

  5. 【上下界网络流 费用流】bzoj2055: 80人环游世界

    EK费用流居然写错了…… Description     想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么     一个80人的团 ...

  6. bzoj 2406 矩阵 —— 有源汇上下界可行流

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2406 这题,首先把题目那个式子的绝对值拆成两个限制,就成了网络流的上下界: 有上下界可行流原 ...

  7. bzoj千题计划158:bzoj2406: 矩阵(有源汇上下界可行流)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2406 设矩阵C=A-B 最小化 C 一行或一列和的最大值 整体考虑一行或者一列的和 二分最大值 这样 ...

  8. BZOJ2055 80人环游世界 网络流 费用流 有源汇有上下界的费用流

    https://darkbzoj.cf/problem/2055 https://blog.csdn.net/Clove_unique/article/details/54864211 ←对有上下界费 ...

  9. bzoj2055: 80人环游世界(可行流)

    传送门 表示完全看不懂最小费用可行流…… 据某大佬说 我们考虑拆点,然后进行如下连边 $s$向$a_i$连边,权值$0$,容量$[0,m]$ $a_i$向$a_i'$连边,权值$0$容量$[v_i,v ...

随机推荐

  1. 在visual studio中查看源代码

    地址:https://docs.microsoft.com/zh-cn/visualstudio/ide/go-to-and-peek-definition?view=vs-2017 在 Visual ...

  2. 如何在mvc项目中使用apiController

    文章地址:How do you route from an MVC project to an MVC ApiController in another project? 文章地址:How to Us ...

  3. 【CSAPP笔记】2. 整型运算

    现在想补补推荐这本书的理由. Most books on systems-computer architecture, compilers, operating systems, and networ ...

  4. golang type

    参考链接 https://blog.csdn.net/tzs919/article/details/53571632 type是golang中非常重要的关键字,常见的就是定义结构体,但是其功能远不止是 ...

  5. windows下的C++ socket服务器(1)

    windows下的一个C++ socket服务器,用到了C++11的相关内容,现在还不是很完善,以后会不断改进的! #include <winsock2.h>//1 以后会用这种方式对特定 ...

  6. lr几个常用的函数

    将字符串保存为参数 lr_save_string("string you want to save", "arg_name"); 将int型数字保存为参数 lr ...

  7. [Oracle] 11.2.0.1 的客户端无法连接12.2.0.1 的DB端 28040

    最近有一个应用服务器安装上了 11.2.0.1 的oracle DB端 又想当 客户端用来 注册 oracle12.2.0.1的DB端发现不行 但是很奇怪 报的错误竟然是 ora 01017 密码错误 ...

  8. Augmenting DOM Storage with IE's userData behavior

    http://www.javascriptkit.com/javatutors/domstorage2.shtml Augmenting DOM Storage with IE's userData ...

  9. lepus天兔数据库监控

    本篇文章的前提是服务器装了mysql服务.git,我这边就不写出来了,自行百度,装下mysql服务,比较简单 一.安装LAMP基础环境 Xampp下载地址:https://www.apachefrie ...

  10. 静态属性加载到jvm时候就存放在数据共享区,而不是等new后出现

    静态属性加载到jvm时候就存放在数据共享区,而不是等new后出现.他的生命周期是 jvm结束 才会消失,一般的方法属性是对象结束后 就会消失.