BZOJ 1449: [JSOI2009]球队收益 最小费用最大流 网络流
https://www.lydsy.com/JudgeOnline/problem.php?id=1449
给每条路加上一个权值,每条路的费用是这条路的流量*权值,求最大流的最小费用。
每次spfa记录一下路径找最短的有流量的路,然后就是普通最大流的操作,反向边加流量什么的,网络流的作用依然是选择。
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
using namespace std;
#define LL long long
const int maxn=;
int n,m,S,E;
int wi[maxn]={},lo[maxn]={},c[maxn]={},d[maxn]={},zz[maxn]={};
struct nod{
int x,y,co,v,rev,next;
}e[maxn*];
int head[maxn]={},vis[maxn]={},tot=,mx;
void init(int x,int y,int v,int co,int rev){
e[++tot].x=x;e[tot].y=y;e[tot].co=co;
e[tot].v=v;e[tot].rev=rev;e[tot].next=head[x];head[x]=tot;
}
queue<int>q;
int dis[maxn]={},fa[maxn]={};
int spfa(){
memset(vis,,sizeof(vis));
memset(dis,,sizeof(dis));
memset(fa,,sizeof(fa));
mx=dis[];q.push(S);vis[S]=;dis[S]=;
while(!q.empty()){
int x=q.front();q.pop();vis[x]=;
for(int i=head[x];i;i=e[i].next){
if(e[i].v){
if(dis[e[i].y]>dis[x]+e[i].co){
dis[e[i].y]=dis[x]+e[i].co;
fa[e[i].y]=i;
if(!vis[e[i].y]){
vis[e[i].y]=;q.push(e[i].y);
}
}
}
}
}
return fa[E];
}
int fyl(){
int ans=,val=mx;
for(int i=fa[E];i;i=fa[e[i].x])val=min(val,e[i].v);
for(int i=fa[E];i;i=fa[e[i].x]){
e[i].v-=val;e[e[i].rev].v+=val;ans+=val*e[i].co;
}
return ans;
}
int main(){
scanf("%d%d",&n,&m);S=n+m+;E=S+;
for(int i=;i<=n;i++) scanf("%d%d%d%d",&wi[i],&lo[i],&c[i],&d[i]);
int x,y;
for(int i=;i<=m;i++){
scanf("%d%d",&x,&y);
lo[x]++;lo[y]++;zz[x]++;zz[y]++;
init(S,n+i,,,tot+);init(n+i,S,,,tot);
init(n+i,x,,,tot+);init(x,n+i,,,tot);
init(n+i,y,,,tot+);init(y,n+i,,,tot);
}
int ans=;
for(int i=;i<=n;i++){
ans+=wi[i]*wi[i]*c[i]+lo[i]*lo[i]*d[i];
for(int j=;j<=zz[i];j++){
int z=c[i]*(*wi[i]+)-d[i]*(*lo[i]-);
init(i,E,,z,tot+);init(E,i,,-z,tot);
wi[i]++;lo[i]--;
}
}
while(spfa())ans+=fyl();
printf("%d\n",ans);
return ;
}
BZOJ 1449: [JSOI2009]球队收益 最小费用最大流 网络流的更多相关文章
- BZOJ 1449: [JSOI2009]球队收益( 最小费用最大流)
先考虑假如全部输了的收益. 再考虑每场比赛球队赢了所得收益的增加量,用这个来建图.. --------------------------------------------------------- ...
- bzoj 1449 [JSOI2009]球队收益(费用拆分,最小费用流)
1449: [JSOI2009]球队收益 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 547 Solved: 302[Submit][Status][ ...
- BZOJ 1449 JSOI2009 球队收益 费用流
题目大意:给定nn支球队.第ii支球队已经赢了winiwin_i场.输了loseilose_i场,接下来还有mm场比赛.每一个球队终于的收益为Ci∗x2i+Di∗y2iC_i*x_i^2+D_i*y_ ...
- 【BZOJ 1449】 1449: [JSOI2009]球队收益 (最小费用流)
1449: [JSOI2009]球队收益 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 841 Solved: 483 Description Inpu ...
- 【BZOJ-1449&2895】球队收益&球队预算 最小费用最大流
1449: [JSOI2009]球队收益 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 648 Solved: 364[Submit][Status][ ...
- 1449: [JSOI2009]球队收益
1449: [JSOI2009]球队收益 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 757 Solved: 437[Submit][Status][ ...
- BZOJ1449[JSOI2009]球队收益&BZOJ2895球队预算——最小费用最大流
题目描述 输入 输出 一个整数表示联盟里所有球队收益之和的最小值. 样例输入 3 3 1 0 2 1 1 1 10 1 0 1 3 3 1 2 2 3 3 1 样例输出 43 提示 要求总费用最低 ...
- BZOJ 2668 [cqoi2012]交换棋子 | 最小费用最大流
传送门 BZOJ 2668 题解 同时分别限制流入和流出次数,所以把一个点拆成三个:入点in(x).中间点mi(x).出点ou(x). 如果一个格子x在初始状态是黑点,则连(S, mi(x), 1, ...
- BZOJ 1061 志愿者招募(最小费用最大流)
题目链接:http://61.187.179.132/JudgeOnline/problem.php?id=1061 题意:申奥成功后,布布经过不懈努力,终于 成为奥组委下属公司人力资源部门的主管.布 ...
随机推荐
- iphone清除数字链接
<meta name="format-detection" content="telephone=no">
- 2016.6.24——vector<vector<int>>【Binary Tree Level Order Traversal】
Binary Tree Level Order Traversal 本题收获: 1.vector<vector<int>>的用法 vector<vector<int ...
- web项目启动首页能访问接口报404
这个问题如果控制台没有报错,然后看一下日志,看看spring容器是否加载: 如果是一直卡在这里了,多半是resources文件下的配置有问题,或者是resources目录不是源文件,工具无法识别 我遇 ...
- ip分片重组 ip_defrag
在ip_local_deliver中,如果检测到是分片包,则需要进行分片重组: ip_local_deliver |-->ip_is_fragment //判断是否为分片包 |-->ip_ ...
- C# 浅谈 接口(Interface)的作用
继承"基类"跟继承"接口"都能实现某些相同的功能,但有些接口能够完成的功能是只用基类无法实现的 1.接口用于描述一组类的公共方法/公共属性. 它不实现任何的方法 ...
- maven profile 优先级
maven profile是有优先级别 也就是说在setting.xml的profile优先级比pom中同名的profile高. 可以使用 mvn help:active-profiles 这个命令是 ...
- Spring cloud Feign 调用端不生效
如果提供方的接口经过测试是没问题的话. 消费方启动类加上@EnableFeignClients 注意定义的接口如果不和启动类在同一个包路径下,需要加basePackages 即:@EnableFeig ...
- Shell学习笔记:#*、%*字符串掐头去尾方法
一.语法 在shell中可以通过#.%对字符串进行掐头去尾操作,使用方法如下: # 表示掐头 % 表示去尾 单个#或%表示最小匹配 双个$或%表示最大匹配 二.例子1 假设我们定义一个变量为: fi ...
- LanguageTag
LanguageTag */--> div.org-src-container { font-size: 85%; font-family: monospace; } pre.src { bac ...
- CentOS7 64位下MySQL5.7安装与配置(YUM)转
安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在MySQL官网中下载YUM源rpm安装包:http://dev.mysql.com/downloads/repo ...