bzoj1449 [JSOI2009]球队收益
Description
Input
Output
Sample Input
1 0 2 1
1 1 10 1
0 1 3 3
1 2
2 3
3 1
Sample Output
#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
#include<queue>
#include<deque>
#include<set>
#include<map>
#include<ctime>
#define LL long long
#define inf 0x3ffffff
#define S 0
#define T n+m+1
#define N 6010
using namespace std;
inline LL read()
{LL x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}return x*f;
}
struct edge{int to,next,from,v,c;}e[10*N];
struct match{int x,y;}M[100010];
int head[N],from[N],dist[N],q[N];
bool mrk[N];
int n,m,ans,cnt=1;
int a[N],b[N],C[N],D[N];
inline void ins(int u,int v,int w,int c)
{e[++cnt].to=v;e[cnt].v=w;e[cnt].c=c;e[cnt].from=u;e[cnt].next=head[u];head[u]=cnt;
}
inline void insert(int u,int v,int w,int c)
{ins(u,v,w,c);ins(v,u,0,-c);
}
inline bool spfa()
{for(int i=0;i<=T;i++)dist[i]=inf;int t=0,w=1;dist[S]=0;q[0]=S;mrk[S]=1;while (t!=w){int now=q[t++];if (t==6005)t=0;for (int i=head[now];i;i=e[i].next)if(e[i].v&&dist[now]+e[i].c<dist[e[i].to]){dist[e[i].to]=dist[now]+e[i].c;from[e[i].to]=i;if (!mrk[e[i].to]){mrk[e[i].to]=1;q[w++]=e[i].to;if(w==6005)w=0;}}mrk[now]=0;}return dist[T]!=inf;
}
inline void mcf()
{int x=inf;for (int i=from[T];i;i=from[e[i].from])x=min(x,e[i].v);for (int i=from[T];i;i=from[e[i].from]){e[i].v-=x;e[i^1].v+=x;ans+=x*e[i].c;}
}
int main()
{n=read();m=read();for (int i=1;i<=n;i++){a[i]=read();b[i]=read();C[i]=read();D[i]=read();}for(int i=1;i<=m;i++){M[i].x=read();M[i].y=read();b[M[i].x]++;b[M[i].y]++;insert(S,i,1,0);insert(i,m+M[i].x,1,0);insert(i,m+M[i].y,1,0);}for (int i=1;i<=n;i++)ans+=a[i]*a[i]*C[i]+b[i]*b[i]*D[i];for (int i=1;i<=m;i++){int x=M[i].x,y=M[i].y;insert(m+x,T,1,2*a[x]*C[x]-2*b[x]*D[x]+C[x]+D[x]);a[x]++;b[x]--;insert(m+y,T,1,2*a[y]*C[y]-2*b[y]*D[y]+C[y]+D[y]);a[y]++;b[y]--;}while (spfa())mcf();printf("%d\n",ans);return 0;
}
转载于:https://www.cnblogs.com/zhber/p/4215838.html
bzoj1449 [JSOI2009]球队收益相关推荐
- 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 1449】 1449: [JSOI2009]球队收益 (最小费用流)
1449: [JSOI2009]球队收益 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 841 Solved: 483 Description Inp ...
- [JSOI2009]球队收益
题目 这题好神啊 我们发现一个球队的总比赛场数是确定的,设第\(i\)支球队一共进行了\(s_i\)场比赛 于是这个球队的收益就是\(c_i\times x^2+d_i(s_i-x)^2\) 我们拆开 ...
- [JSOI2009]球队收益 Solution
题意:有nnn个球队,如果一支球队胜场为xix_ixi,负场为yiy_iyi,那么他们的奖金即为Ci×xi2+Di×yi2C_i\times x_i^2+D_i\times y_i^2Ci×xi ...
- 【BZOJ-14492895】球队收益球队预算 最小费用最大流
1449: [JSOI2009]球队收益 Time Limit: 5 Sec Memory Limit: 64 MB Submit: 648 Solved: 364 [Submit][Status ...
- WC2007 剪刀石头布【补集转化+比赛问题费用流】
题目描述: N个点的竞赛图,已知一部分比赛结果,求安排剩下比赛的胜负情况,使得三元环的数量最大(A胜B,B胜C,C胜A).N<=100 题目分析: 直接统计三元环并不好做,考虑非三元环的情况,必 ...
- [NetworkFlow]网络流建模相关
流 网络流问题本质上是线性规划问题的应用之一,线性规划问题的标准形式是给出一组等式约束和不等式约束,要求最优化一个线性函数. 在流问题中,变量以流量的形式出现在问题中,我们给出一个流网络(以有向图的形 ...
- bzoj乱刷计划2 19/20
前言 话说第一个乱刷计划很顺利地完成了 感觉写成一个题表的形式还是很支持的 于是我决定再开一个.. 打算 依然是可以做自己没做过的题,也可以复习做过的.同时尽量学一些自己不会的吧 乱刷计划2 3158 ...
- c语言设计思路和有点不足,C语言总结报告
1.当初你是如何做出选择计算机专业的决定的? 经过一个学期,你的看法改变了么,为什么? 你觉得计算机是你喜欢的领域吗,它是你擅长的领域吗? 为什么? 当初报考计算机专业,是看到计算机专业在当今社会有良 ...
最新文章
- 自学笔记——2.字符串的切片、遍历、查找字符
- shell 变量定义使用
- 产品操作-查询全部产品
- classloader.getresources() 介绍
- 资源| 深度学习公众号推荐(值得关注的公众号)
- php sql慢查询,一个用户SQL慢查询分析,原因及优化_MySQL
- 用户没有create session权限_快速搞懂Oracle 19c安全新特性 (二)Privilege Analysis(权限分析)...
- entity framework 动态条件
- bjui 公共的弹窗确认 取消 改变文字
- 打开ps显示计算机内存不足怎么办,如何解决PS内存不足的问题
- 【Unity实战100例】技能伤害区域判定(矩形,圆,三角形,扇形)(三)
- 毕业设计基本要求计算机,计算机学院关于本科毕业设计(论文)的基本要求.doc
- 外网远程桌面连接内网服务器教程(超详细)
- 截段八面体堆积 matlab,截角八面体可以充满空间
- OpenGLES2.0渲图步骤:绘几何图形、图片处理、离屏渲染(3)
- Outlook 2013 英文版 设置收信规则
- 小米8手机相册中的图片怎么识别文字?
- 光标大小怎么调_cad十字光标和坐标系,你必知的几个小技巧!
- Android自动电话录音开发过程及问题
- 用wingrub从硬盘安装linux