题解:

S连每场比赛流量1费用0 
每场比赛连参赛队流量1费用0

我们发现调整一次 由win,lose变为 win+1,lose-1的费用为 
(C*(win+1)^2+D*(lose-1)^2) - (C*win^2+D*lose^2)=C*(2*win+1)-D*(2*lose-1) 
暴力连边就可以了 
最后的答案=最想费用流+最初假设所有队伍都输的收益

代码:

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int N=;
int S,W,lose[N],sum[N],win[N],ans,C[N],D[N];
int fi[N],n,t,cas,m,x,y,z,f[N],ne[N],num,zz[N],fl[N],gp[N],dist[N],pre[N],sl[N];
void jb(int x,int y,int z,int s)
{
ne[num]=fi[x];
fi[x]=num;
zz[num]=y;
sl[num]=z;
fl[num++]=s;
ne[num]=fi[y];
fi[y]=num;
zz[num]=x;
sl[num]=;
fl[num++]=-s;
}
int spfa()
{
memset(dist,0x3f,sizeof dist);
memset(pre,-,sizeof pre);
memset(gp,,sizeof gp);
memset(f,,sizeof f);
queue<int > Q;
Q.push(S);
dist[S]=;
while (!Q.empty())
{
int now=Q.front();
Q.pop();
f[now]=;
for (int i=fi[now];i!=-;i=ne[i])
if (sl[i]>)
{
int t=zz[i];
if (dist[t]>dist[now]+fl[i])
{
dist[t]=dist[now]+fl[i];
pre[t]=now;
gp[t]=i;
if (!f[t])
{
f[t]=;
Q.push(t);
}
}
}
}
if (pre[W]==-)return ;
return ;
}
void Max_flow()
{
int cost=,flow=;
while (!spfa())
{
int f=1e9;
for (int i=W;i!=S;i=pre[i])
f=min(f,sl[gp[i]]);
cost+=f;
flow+=dist[W]*f;
for (int i=W;i!=S;i=pre[i])
{
sl[gp[i]]-=f;
sl[gp[i]^]+=f;
}
}
printf("%d\n",flow+ans);
}
int main()
{
memset(fi,-,sizeof fi);
scanf("%d%d",&n,&m);
S=n+m+,W=S+;
for (int i=;i<=n;i++)scanf("%d%d%d%d",&win[i],&lose[i],&C[i],&D[i]);
for (int i=;i<=m;i++)
{
int x,y;
scanf("%d%d",&x,&y);
jb(S,n+i,,);
jb(n+i,x,,);
jb(n+i,y,,);
sum[x]++,sum[y]++;
}
for (int i=;i<=n;i++)lose[i]+=sum[i];
for (int i=;i<=n;i++)ans+=C[i]*win[i]*win[i]+D[i]*lose[i]*lose[i];
for (int i=;i<=n;i++)
for (int j=;j<=sum[i];j++)
{
jb(i,W,,C[i]*(*win[i]+)-D[i]*(*lose[i]-));
win[i]++;lose[i]--;
}
Max_flow();
}

bzoj1449&&bzoj2895的更多相关文章

  1. 【bzoj1449/bzoj2895】[JSOI2009]球队收益/球队预算 费用流

    题目描述 输入 输出 一个整数表示联盟里所有球队收益之和的最小值. 样例输入 3 3 1 0 2 1 1 1 10 1 0 1 3 3 1 2 2 3 3 1 样例输出 43 题解 费用流 由于存在一 ...

  2. BZOJ1449[JSOI2009]球队收益&BZOJ2895球队预算——最小费用最大流

    题目描述 输入 输出 一个整数表示联盟里所有球队收益之和的最小值. 样例输入 3 3 1 0 2 1 1 1 10 1 0 1 3 3 1 2 2 3 3 1 样例输出 43 提示   要求总费用最低 ...

  3. [BZOJ1449] [JSOI2009]球队收益 / [BZOJ2895] 球队预算

    Description 在一个篮球联赛里,有n支球队,球队的支出是和他们的胜负场次有关系的,具体来说,第i支球队的赛季总支出是Cix^2+Diy^2,Di<=Ci.(赢得多,给球员的奖金就多嘛) ...

  4. BZOJ2895: 球队预算

    [传送门:BZOJ2895] 简要题意: 在一个篮球联赛里,有n支球队,球队的支出是和他们的胜负场次有关系的,具体来说,第i支球队的赛季总支出是Ci*x^2+Di*y^2,Di<=Ci.(赢得多 ...

  5. 【BZOJ1449】 球队收益

    BZOJ1449 球队收益 Output 一个整数表示联盟里所有球队收益之和的最小值. Sample Input 3 3 1 0 2 1 1 1 10 1 0 1 3 3 1 2 2 3 3 1 Sa ...

  6. 【BZOJ1449】[JSOI2009]球队收益(网络流,费用流)

    [BZOJ1449][JSOI2009]球队收益(网络流,费用流) 题面 BZOJ 洛谷 题解 首先对于一支队伍而言,总共进行多少场比赛显然是已知的,假设是\(n_i\)场,那么它的贡献是:\(C_i ...

  7. 【BZOJ1449/2895】[JSOI2009]球队收益/球队预算 最小费用最大流

    [BZOJ2895]球队预算 Description 在一个篮球联赛里,有n支球队,球队的支出是和他们的胜负场次有关系的,具体来说,第i支球队的赛季总支出是Ci*x^2+Di*y^2,Di<=C ...

  8. Bzoj1449 [JSOI2009]球队收益

    Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 741  Solved: 423 Description Input Output 一个整数表示联盟里所有球 ...

  9. 【BZOJ-1449&2895】球队收益&球队预算 最小费用最大流

    1449: [JSOI2009]球队收益 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 648  Solved: 364[Submit][Status][ ...

随机推荐

  1. HTTPS握手

    作用 内容加密 建立一个信息安全通道,来保证数据传输的安全: 身份认证 确认网站的真实性 数据完整性 防止内容被第三方冒充或者篡改 https的采用了对称加密和非对称加密.握手过程中采用非对称加密,得 ...

  2. 设置XShell快捷键 复制粘贴 并禁用智能选择

    设置XShell快捷键 复制粘贴 并禁用智能选择 1打开选项 2键盘和鼠标->打开编辑 3新建 组合键 Ctrl+C 类型:菜单 ->操作 [编辑]复制  [编辑]粘贴 4选中 ctrl+ ...

  3. 005-java的Annotation

    一.概述 Annotation,JDK1.5开始提供 二.基本定义 public @interface HelloWorld { } 1.使用@Interface定义,名称大写 2.使用@Target ...

  4. EasyUI Easyloader 加载器

    用法 加载 EasyUI 模块 easyloader.base = '../'; // 设置 easyui 的基本目录 easyloader.load('messager', function(){ ...

  5. js判断用户是在PC端或移动端访问

    js如何判断用户是在PC端和还是移动端访问.  最近一直在忙我们团队的项目“咖啡之翼”,在这个项目中,我们为移动平台提供了一个优秀的体验.伴随Android平台的红火发展.不仅带动国内智能手机行业,而 ...

  6. SpringBoot 通过自定义注解实现AOP切面编程实例

    一直心心念的想写一篇关于AOP切面实例的博文,拖更了许久之后,今天终于着手下笔将其完成. 基础概念 1.切面(Aspect) 首先要理解‘切’字,需要把对象想象成一个立方体,传统的面向对象变成思维,类 ...

  7. 26. Remove Duplicates from Sorted Array(删除排序数组中的重复元素,利用排序的特性,比较大小)

      Given a sorted array, remove the duplicates in-place such that each element appear only once and r ...

  8. SQLServer cast()函数

    语法: CAST (expression AS data_type) 参数说明: expression:任何有效的SQLServer表达式. AS:用于分隔两个参数,在AS之前的是要处理的数据,在AS ...

  9. Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)

    http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ...

  10. bzoj1999 / P1099 树网的核

    P1099 树网的核 (bzoj数据加强) 前置知识:树的直径 (并不想贴我的智障写法虽然快1倍但内存占用极大甚至在bzoj上MLE) 正常写法之一:用常规方法找到树的直径,在直径上用尺取法找一遍,再 ...