hihocoder1398 网络流五之最大权闭合子图
虽然我自己现在总结不好最大权闭合子图。但也算稍稍理解辣。
网络流起步ing~~~(~ ̄▽ ̄)~
#include<iostream>
#include<cstdio>
#include<queue>
#include<algorithm>
using namespace std;
struct node
{
int point;
int nxt;
int value;
};
node line[500000];
int head[5000],tail=-1;
int n,m;
void add(int x,int y,int z)
{
line[++tail].point=y;
line[tail].value=z;
line[tail].nxt=head[x];
head[x]=tail;
line[++tail].point=x;
line[tail].value=0;
line[tail].nxt=head[y];
head[y]=tail;
}
int a[5000],b[5000];
int dep[50000],cur[50000];
bool BFS(int begin,int end)
{
for(int i=begin;i<=end;i++)
{
dep[i]=0;
cur[i]=head[i];
}
queue<int>q;
q.push(begin);
dep[begin]=1;
while(!q.empty())
{
int pas=q.front();
q.pop();
for(int i=head[pas];i!=-1;i=line[i].nxt)
if(!dep[line[i].point]&&line[i].value)
{
dep[line[i].point]=dep[pas]+1;
q.push(line[i].point);
}
}
if(dep[end])
return true;
return false;
}
int dfs(int now,int aim,int limte)
{
if(now==aim||!limte)
return limte;
int flow=0,f;
for(int i=cur[now];i!=-1;i=line[i].nxt)
{
cur[now]=i;
if(dep[line[i].point]==dep[now]+1&&(f=dfs(line[i].point,aim,min(limte,line[i].value))))
{
flow+=f;
limte-=f;
line[i].value-=f;
line[i^1].value+=f;
if(!limte)
break;
}
}
return flow;
}
int dinic(int begin,int end)
{
int res=0;
while(BFS(begin,end))
res+=dfs(begin,end,0x7fffffff);
return res;
}
int main()
{
int ans=0;
scanf("%d%d",&n,&m);
for(int i=0;i<=n+m+1;i++)
head[i]=-1;
for(int i=1;i<=m;i++)
scanf("%d",&b[i]);
int num,dat;
for(int i=1;i<=n;i++)
{
scanf("%d%d",&a[i],&num);
ans+=a[i];
for(int j=1;j<=num;j++)
{
scanf("%d",&dat);
add(i,n+dat,0x7fffffff);
}
}
for(int i=1;i<=n;i++)
add(0,i,a[i]);
for(int i=n+1;i<=n+m;i++)
add(i,n+m+1,b[i-n]);
ans-=dinic(0,n+m+1);
printf("%d",ans);
}
我的代码,让你感到真真的实惠石灰(逃)
hihocoder1398 网络流五之最大权闭合子图的更多相关文章
- BZOJ 1565 NOI2009 植物大战僵尸 topo+最小割(最大权闭合子图)
题目链接:https://www.luogu.org/problemnew/show/P2805(bzoj那个实在是有点小小的辣眼睛...我就把洛谷的丢出来吧...) 题意概述:给出一张有向图,这张有 ...
- [HihoCoder1398]网络流五·最大权闭合子图
题目大意:有$N$项活动$M$个人,每个活动$act_i$有一个正的权值$a_i$,每个人$stu_i$有一个负的权值$b_i$.每项活动能够被完成当且仅当该项活动所需的所有人到场.如何选择活动使最终 ...
- [HIHO119]网络流五·最大权闭合子图(最大流)
题目链接:http://hihocoder.com/contest/hiho119/problem/1 题意:中文题意. 由于1≤N≤200,1≤M≤200.最极端情况就是中间所有边都是满的,一共有N ...
- BZOJ 4873 [Shoi2017]寿司餐厅 | 网络流 最大权闭合子图
链接 BZOJ 4873 题解 当年的省选题--还记得蒟蒻的我Day1 20分滚粗-- 这道题是个最大权闭合子图的套路题.严重怀疑出题人就是先画好了图然后照着图编了个3000字的题面.和我喜欢的妹子当 ...
- Cogs 727. [网络流24题] 太空飞行计划(最大权闭合子图)
[网络流24题] 太空飞行计划 ★★☆ 输入文件:shuttle.in 输出文件:shuttle.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] W 教授正在为国家航天中心计 ...
- bzoj1391 最大权闭合子图(also最小割、网络流)
一道裸的最小割的题,写一下只是练练手. 表示被卡M,RE不开心.一道裸题至于吗? 再次复习一下最大权闭合子图: 1.每一个点若为正权,与源点连一条容量为绝对值权值的边.否则连向汇点一条容量为绝对值权值 ...
- P4177 [CEOI2008]order 网络流,最小割,最大权闭合子图
题目链接 \(Click\) \(Here\) 如果没有租用机器就是一个裸的最大权闭合子图.现在有了租用机器应该怎么办呢? 单独拆点是不行的,因为会和直接买下的情况脱离关系,租借是和连边直接相关的,那 ...
- codeforces 1082G - Petya and Graph 最大权闭合子图 网络流
题意: 让你选一些边,选边的前提是端点都被选了,求所有的边集中,边权和-点权和最大的一个. 题解: 对于每个边建一个点,然后就是裸的最大权闭合子图, 结果比赛的时候我的板子太丑,一直T,(不会当前弧优 ...
- P4177 [CEOI2008]order(网络流)最大权闭合子图
P4177 [CEOI2008]order 如果不能租机器,这就是最大权闭合子图的题: 给定每个点的$val$,并给出限制条件:如果取点$x$,那么必须取$y_1,y_2,y_3......$,满足$ ...
随机推荐
- Linux 添加用户(user),组(Group)以及权限(Permission)
1. 添加用户 sudo adduser UserName 异常: sudo adduser --force-badname <username> 之后为这个用户添加其他辅助信息 切换用户 ...
- mysql 安装以及卸载 CentOS 6.9
mysql官网下载地址:https://dev.mysql.com/downloads/mysql/ 本次操作系统是 阿里云服务器 CentOS 6.9 64位 下载得到tar 包: mysql ...
- 转 JDBC连接数据库(二)——连接池
https://www.cnblogs.com/xiaotiaosi/p/6398371.html 数据库保持长连接,不过一直都是idle,除非有用户激活连接,这样后果是无法删除用户,但是不影响数据库 ...
- python django 基本测试
http://www.runoob.com/django/django-model.html django-admin startapp TestModel /models.py from djang ...
- ES6结构赋值
解构赋值 从ES6开始,JavaScript引入了解构赋值,可以同时对一组变量进行赋值. 什么是解构赋值?我们先看看传统的做法,如何把一个数组的元素分别赋值给几个变量: var array = ['h ...
- C++计算二叉树的节点数和高度
用struct结构体的写法: /* * description: 计算二叉树的层数和节点数 * writeby: nick * date: 2012-10-23 16:16 * */ #include ...
- (转)sdd for aix 安装及基本命令
总结出自多个文件(自己做的项目和网上找的资料) 原文:http://blog.csdn.net/yujin2010good/article/details/11395701 一.sddpcm安装 要安 ...
- eclipse 构建从 SVN 上下载的可识别的 maven 项目
从 SVN 上下载的 maven 项目中含有父项目,属于 maven 的嵌套,每个子项目和父项目虽有 pom.xml 文件,在结构上也是 maven 然而并不是 eclipse 识别的 maven 项 ...
- SharePoint 2010 究竟需要占用多少服务器资源?
SharePoint 安装目录(即SharePoint Root)大约 300M 磁盘空间. SharePoint Config 数据库,60M. Admin Center 数据库,100M. 默认安 ...
- ansible使用5-Variables
变量命名 支持数字.字母.下划线 有效:foo_port, foo5 无效:foo-port, foo port, foo.port, 12 playbook定义 - hosts: webserver ...