题解:

似乎是放在费用流里的

然而是有上下界的网络流QAQ

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=;
int n,m,x,mincost,s,t,S,ss,tt,tot,fi[N],ne[N],zz[N],sl[N],c[N];
int dis[N],last[N],d[N],vis[N];
queue <int> q;
void jb(int x,int y,int cap,int z)
{
ne[++tot]=fi[x];
fi[x]=tot;
zz[tot]=y;
sl[tot]=cap;
c[tot]=z;
ne[++tot]=fi[y];
fi[y]=tot;
zz[tot]=x;
sl[tot]=;
c[tot]=-z;
}
int addflow(int s,int t)
{
int now=t,ans=1e9;
while (now!=s)
{
ans=min(ans,sl[last[now]]);
now=zz[last[now]^];
}
now=t;
while (now!=s)
{
sl[last[now]]-=ans;
sl[last[now]^]+=ans;
now=zz[last[now]^];
}
return ans;
}
int spfa(int s,int t)
{
memset(dis,,sizeof(dis));
dis[s]=;
memset(vis,,sizeof(vis));
vis[s]=;
while (!q.empty())q.pop();
q.push(s);
while (!q.empty())
{
int now=q.front();q.pop();
vis[now]=;
for (int i=fi[now];i!=-;i=ne[i])
if (dis[zz[i]]>dis[now]+c[i]&&sl[i])
{
dis[zz[i]]=dis[now]+c[i];
last[zz[i]]=i;
if (!vis[zz[i]])
{
vis[zz[i]]=;
q.push(zz[i]);
}
}
}
if (dis[t]>1e9) return ;
int flow=addflow(s,t);
mincost+=flow*dis[t];
return ;
}
int main()
{
tot=-;
memset(fi,-,sizeof(fi));
scanf("%d%d",&n,&m);
S=n+n+,s=S+,t=s+;ss=t+,tt=ss+;
d[s]-=m,d[S]+=m;
for (int i=;i<=n;i++)
{
scanf("%d",&x);
jb(S,i,1e9,);
jb(n+i,t,1e9,);
d[i]-=x,d[n+i]+=x;
}
for (int i=;i<n;i++)
for (int j=i+;j<=n;j++)
{
scanf("%d",&x);
if (x==-) continue;
jb(n+i,j,1e9,x);
}
for (int i=;i<=t;i++)
{
if (d[i]>)jb(ss,i,d[i],);
if (d[i]<)jb(i,tt,-d[i],);
}
jb(t,s,1e9,);
while (spfa(ss,tt));
printf("%d\n",mincost);
}

bzoj2055的更多相关文章

  1. 【BZOJ2055】80人环游世界 有上下界费用流

    [BZOJ2055]80人环游世界 Description     想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么     一个 ...

  2. 【BZOJ-2055】80人环游世界 上下界费用流 (无源无汇最小费用最大流)

    2055: 80人环游世界 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 321  Solved: 201[Submit][Status][Discus ...

  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. bzoj千题计划159:bzoj2055: 80人环游世界(有源汇上下界可行最小费用流)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2055 某个国家必须经过vi次, 可以转化为上下界都为vi的边 对这张图做有源汇上下界可行最小费用流 ...

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

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

  7. [BZOJ2055] 80人环游世世界

    Description ​ 想必大家都看过成龙大哥的<80天环游世界>,里面的紧张刺激的打斗场面一定给你留下了深刻的印象.现在就有这么 ​ 一个80人的团伙,也想来一次环游世界. ​ 他们 ...

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

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

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

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

随机推荐

  1. 《剑指offer》第五十七题(和为s的两个数字)

    // 面试题57(一):和为s的两个数字 // 题目:输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们 // 的和正好是s.如果有多对数字的和等于s,输出任意一对即可. #includ ...

  2. Codeforces 1073 E - Segment Sum

    E - Segment Sum 思路: 数位dp 我们平时做的数位dp都是求满足条件的数的个数, 这里要求满足条件的数的和 只要在原来的基础上求每一位的贡献就可以了,所以传参数时要传两个 代码: #p ...

  3. Angular 学习笔记 ( timezone + moment + material date-picker + date pipe + asp.net core )

    参考 : https://stackoverflow.com/questions/29979609/time-conversion-with-timezoneinfo-for-past-years h ...

  4. python中列表和元组的操作(结尾格式化输出小福利)

    一. 列表 1. 查 names = "YanFeixu WuYifan" names_1 = ["YanFeixu"," WuYifan" ...

  5. jenkins之从0到1利用Git和Ant插件打war包并自动部署到tomcat(第四话):把war包远程部署到tomcat

    上一节介绍了如何用Ant插件来打war包,本节接着介绍如何把build好的war自动部署到tomcat中 1.先安装 Deploy to container Plugin插件 2. 在构建后操作中添加 ...

  6. android--------自定义控件 之 基本流程篇

    在我们平常的Android开发中经常和控件打交道,有时Android提供的控件未必能满足业务的需求,这个时候就需要我们实现自定义一些控件 自定义控件可以设计出很多你想要的功能和模块,在开发中是很重要的 ...

  7. redis 持久化方式

    对于persistence持久化存储,Redis提供了两种持久化方法: Redis DataBase(简称RDB) 执行机制:快照,直接将databases中的key-value的二进制形式存储在了r ...

  8. 20165309 实验三 敏捷开发与XP实践

    2017-2018-2 20165309实验三<Java面向对象程序设计>实验报告 一.实验内容 1. XP基础 2. XP核心实践 3. 相关工具 二.实验步骤 (一)代码规范 1.在I ...

  9. 基于Helm和Operator的K8S应用管理的分享

    一.为啥要用helm 对于一些微服务架构来说,会有不同的服务在上面运行,你可能要管理诸如deployment.service.有状态的Statefulset.权限的控制等等.你会发现,部署应用后还会有 ...

  10. hbase的api操作

    创建maven工程,修改jdk pom文件里添加需要的jar包 dependencies> <dependency> <groupId>jdk.tools</gro ...