bzoj1449————2016——3——14
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1449
题目简述:
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<iostream>
#include<cstring>
#include<cstdio>
#define inf 0x7fffffff
#define maxn 1000000
int pre[maxn],v[maxn],cost[maxn],cap[maxn],lis[maxn];
int lose[],win[],in[],c[],d[],dis[],now[],sla[],mark[];
bool vis[];
int n,m,s,t,tot,ans;
using namespace std;
void ins(int a, int b, int c, int d)
{
tot++; pre[tot]=now[a]; now[a]=tot; v[tot]=b; cost[tot]=d; cap[tot]=c;
}
void insert(int a, int b, int c, int d)
{
ins(a,b,c,d); ins(b,a,,-d);
}
bool spfa()
{
int head=,tail=;
for (int i=s; i<=t; i++) dis[i]=inf;
memset(mark,,sizeof(mark));
lis[]=t; dis[t]=; mark[t]=;
while (head!=tail)
{
int x=lis[head]; mark[x]=; head++;
if(head==)head=;
for (int i=now[x]; i; i=pre[i])
{
if (dis[x]+cost[i^]<dis[v[i]] && cap[i^])
{
dis[v[i]]=dis[x]+cost[i^];
if (!mark[v[i]])
{
mark[v[i]]=;
tail++;
lis[tail]=v[i];
if(tail==)tail=;
}
}
}
}
// printf("%d\n",dis[s]);
if (dis[s]!=inf ) return true; else return false;
}
int dfs(int x, int f)
{
mark[x]=;
if (x==t) return f;
int w,used=;
for (int i=now[x]; i; i=pre[i])
{
if (!mark[v[i]] && cap[i] && dis[x]-cost[i]==dis[v[i]])
{
w=dfs(v[i],min(f-used,cap[i]));
cap[i]-=w; cap[i^]+=w;
ans+=w*cost[i];
used+=w; if (used==f) return f;
}
}
return used;
}
void zkw()
{
while(spfa())
{
mark[t]=;
while(mark[t])
{
memset(mark,,sizeof(mark));
dfs(s,inf);
}
}
}
int main()
{
scanf("%d%d",&n,&m); tot=; ans=;
for (int i=; i<=n; i++)
scanf("%d%d%d%d",&win[i],&lose[i],&c[i],&d[i]);
s=; t=n+m+;
for (int i=; i<=m; i++)
{
int u,v;
insert(s,i,,);
scanf("%d%d",&u,&v);
insert(i,u+m,,);
insert(i,v+m,,);
in[u]++; in[v]++;
}
for (int i=; i<=n; i++)
{
lose[i]+=in[i];
}
ans=;
for(int i=;i<=n;i++)
ans+=win[i]*win[i]*c[i]+lose[i]*lose[i]*d[i];
for (int i=; i<=n; i++)
for (int j=; j<=in[i]; j++)
{
//insert(i+m,t,1,c[i]*(2*win[i]+2*j-1)-d[i]*(2*lose[i]-2*j+1));
insert(i+m,t,,*c[i]*win[i]+c[i]+d[i]-*d[i]*lose[i]);
win[i]++; lose[i]--;
}
//printf("%d\n",ans);
zkw();
printf("%d\n",ans);
return ;
}
bzoj1449————2016——3——14的更多相关文章
- 2016.09.14,英语,《Using English at Work》全书笔记
半个月时间,听完了ESLPod出品的<Using English at Work>,笔记和自己听的时候的备注列在下面.准备把每个语音里的快速阅读部分截取出来,放在手机里反复听. 下一阶段把 ...
- Murano Weekly Meeting 2016.06.14
Meeting time: 2016.June.14 1:00~2:00 Chairperson: Kirill Zaitsev, from Mirantis Meeting summary: 1. ...
- 2016.10.14,英语,《American Accent Training》
这本书是讲述美语发音训练的.已经看了一段时间了,决定向周叶学习,记录读书笔记.计划每天花半个小时,学习3节左右的音频(按照CD TRACK),并完成训练. CD1 Track1 What is Acc ...
- nginx学习记录/2016.11.14
nginx(engine X)是一个高性能的web服务器和反向代理服务器以及电子邮件代理服务器 由俄罗斯的程序设计师Igor Sysoev所开发 nginx+tomcat实现负载均衡 参考地址:htt ...
- 2016.11.14测试 长乐一中2014NOIP复赛模拟题 第一题。
1.正确答案 [题目描述] 小H与小Y刚刚参加完UOIP外卡组的初赛,就迫不及待的跑出考场对答案. "吔,我的答案和你都不一样!",小Y说道,"我们去找神犇们问答案吧&q ...
- 2016.8.14安装myplayer心得
安装mplayer时,我有两个os是not found状态,我在其他地方找到后 which mplayer,找到mplayer的配置界面,找到not found的部分,并且从usr/lib中找到相应的 ...
- 2016.9.14 JavaScript入门之七面向对象和函数
1.JavaScript中的变量,可以是对象,具有相应的属性: 2.我们也能够使用构造函数创建对象.构造函数的函数给出了一个大写的名称,以使它清楚地表明它是一个构造函数. 在构造函数中,这个变量是指由 ...
- 2016.8.14 HTML5重要标签以及属性学习
1.响应网格系统,这使得它很容易把元素放在行,并指定每个元素的相对宽度 . 要注意的是: 在使用网格布局系统之前,要不把布局的元素都添加到同一个<div>中,而且这个<div> ...
- 2016.8.14 HTML5重要标签及其属性学习
1.移动端的CSS: 一般需要引入下面的外部样式表: <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/ ...
随机推荐
- posix信号量(sem_t)
引言 信号量分为三种:posix有名信号量(使用Posix IPC名字标识,至少具有随内核的持续性)/posix基于内存的信号量(共享内存,随进程的持续性)/System V 信号量(内核) 有了互斥 ...
- C语言中的几种常见排序算法
1.冒泡排序法:如果有N个数,两两相邻进行比较,将最值沉入最后一位置,要进行N-1轮比较, 第一轮要比较N-1次,第2轮只要比较N-1-1次,因为第一次已经把最值沉入最后一位置,故 不需在进行比较一次 ...
- O(n)线性时间找第K大,中位数
运用快速排序的思想,可以达到线性时间找到一串数的第K大 #include<cstdio> #define F(i,a,b) for(int i=a;i<=b;i++) ],n; vo ...
- Apache多端口配置
修改http.conf监听多个端口 Listen 80 Listen 8001 Listen 8002 配置站点 <VirtualHost *:8001> ServerName *:800 ...
- nginx php版本隐藏
配置完一台服务器后,并不是就可以高枕无忧了,前不久刚刚爆发的PHP 5.3.9版本的漏洞也搞得人心惶惶,所以说经常关注安全公告并及时升级服务器也是必要的.一般来说,黑客攻击服务器的首要步骤就是收集信息 ...
- vm选项大全
http://hllvm.group.iteye.com/group/topic/27945 java -XX:后边的总记不住 vm选项大全 http://www.oracle.com/technet ...
- Dice Possibility
Dice Possibility 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 What is possibility of rolling N dice and th ...
- C/C++ strtok函数
一.头文件:#include <string.h> 二.函数原型:char * strtok (char *str, const char * delimiters); 三.参数:str, ...
- cc2530 寄存器PICTL理解
- Cannot open the disk 'F:\centos64-final\CentOS 64-bit\CentOS 64-bit.vmdk' orone of the snapshot disk
删除虚拟机系统目录下的 后缀名为 .lck 的文件或文件夹 这个lck文件是虚拟机的磁盘锁文件,我们知道虚拟机的磁盘与主机的磁盘是共存的,只是由于采用特定的虚拟机制,使二者互不影响.在使用虚拟机时,v ...