【最大权闭合子图/最小割】BZOJ3438-小M的作物【待填】
【题目大意】
/*还是TLE,回头看*/
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define S 0
#define T MAXN-1
using namespace std;
const int INF=0x7fffffff;
const int MAXN=+;
const int MAXM=+;
struct node
{
int fr,to,pos,cap;
};
int n,m,sum;
int dis[MAXN];
int vis[MAXN];
int cur[MAXN];
int first[MAXN],next[MAXM];
node edge[MAXM];
int tot=; int read() {
int x = ;
char ch = getchar();
while (ch < '' || '' < ch)
ch = getchar();
while ('' <= ch && ch <= '') {
x = x * + ch - '';
ch = getchar();
}
return x;
} void addedge(int u,int v,int c)
{
edge[++tot]=(node){u,v,tot+,c};
next[tot]=first[u];first[u]=tot;
edge[++tot]=(node){u,v,tot-,};
next[tot]=first[v];first[v]=tot;
} void build()
{
memset(first,-,sizeof(first));
memset(next,-,sizeof(next));
int ai,bi;
n=read();
for (int i=;i<=n;i++)
{
ai=read();
sum+=ai;
addedge(S,i,ai);
}
for (int i=;i<=n;i++)
{
bi=read();
sum+=bi;
addedge(i,T,bi);
}
m=read();
int k,c1i,c2i;
for (int i=;i<=m;i++)
{
k=read();c1i=read();c2i=read();
int u=n+i;
int v=n+i+m;
addedge(S,u,c1i);
addedge(v,T,c2i);
sum+=c1i+c2i;
for (int j=;j<=k;j++)
{
int ci;
ci=read();
addedge(u,ci,INF);
addedge(ci,v,INF);
}
}
} int bfs()
{
memset(dis,-,sizeof(dis));
int l=,r=;
int que[MAXN];
que[++r]=S;
dis[S]=; while (l<r)
{
int head=que[l];l++;
for (int i=first[head];i!=-;i=next[i])
{
node &tmp=edge[i];
if (dis[tmp.to]==- && tmp.cap>)
{
dis[tmp.to]=dis[head]+;
que[++r]=tmp.to;
}
}
}
return (dis[T]!=-);
} int dfs(int s,int t,int f)
{
vis[s]=;
if (s==t || !f) return f;
int res=;
for (int i=first[s];i!=-;i=next[i])
{
node &tmp=edge[i];
if (!vis[tmp.to] && tmp.cap> && dis[tmp.to]==dis[s]+)
{
int delta=dfs(tmp.to,t,min(tmp.cap,f));
if (delta>)
{
tmp.cap-=delta;
edge[tmp.pos].cap+=delta;
f-=delta;
res+=delta;
if (!f) return res;
}
}
}
return res;
} int dinic()
{
int flow=;
while (bfs())
{
memset(vis,,sizeof(vis));
flow+=dfs(S,T,INF);
}
return flow;
} int main()
{
build();
printf("%d\n",sum-dinic());
return ;
}
【最大权闭合子图/最小割】BZOJ3438-小M的作物【待填】的更多相关文章
- 洛谷 P4174 [NOI2006]最大获利 && 洛谷 P2762 太空飞行计划问题 (最大权闭合子图 && 最小割输出任意一组方案)
https://www.luogu.org/problemnew/show/P4174 最大权闭合子图的模板 每个通讯站建一个点,点权为-Pi:每个用户建一个点,点权为Ci,分别向Ai和Bi对应的点连 ...
- BZOJ 1565 / P2805 [NOI2009]植物大战僵尸 (最大权闭合子图 最小割)
题意 自己看吧 BZOJ传送门 分析 - 这道题其实就是一些点,存在一些二元限制条件,即如果要选uuu则必须选vvv.求得到的权值最大是多少. 建一个图,如果选uuu必须选vvv,则uuu向vvv连边 ...
- 【最大权闭合子图 最小割】bzoj1497: [NOI2006]最大获利
最大权闭合子图的模型:今天才发现dinic板子是一直挂的…… Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在 ...
- bzoj 1497 [NOI2006]最大获利【最大权闭合子图+最小割】
不要被5s时限和50000点数吓倒!大胆网络流!我一个5w级别的dinic只跑了1s+! 看起来没有最大权闭合子图的特征--限制,实际上还是有的. 我们需要把中转站看成负权点,把p看成点权,把客户看成 ...
- 洛谷 P2762 太空飞行计划问题 【最大权闭合子图+最小割】
--一道难在读入的题. 最后解决方案直接getline一行然后是把读优拆掉放进函数,虽然很丑但是过了. 然后就是裸的最大权闭合子图了,把仪器当成负权点向t连流量为其价格的边,s向实验连流量为实验报酬的 ...
- POJ 2987 Firing【最大权闭合图-最小割】
题意:给出一个有向图,选择一个点,则要选择它的可以到达的所有节点.选择每个点有各自的利益或损失.求最大化的利益,以及此时选择人数的最小值. 算法:构造源点s汇点t,从s到每个正数点建边,容量为利益.每 ...
- [luoguP2762] 太空飞行计划问题(最大权闭合图—最小割—最大流)
传送门 如果将每一个实验和其所对的仪器连一条有向边,那么原图就是一个dag图(有向无环) 每一个点都有一个点权,实验为收益(正数),仪器为花费(负数). 那么接下来可以引出闭合图的概念了. 闭合图是原 ...
- B1391 [Ceoi2008]order 最大权闭合图 最小割
啊啊啊,假的题吧!!!我用的当前弧优化T了6个点,其他人不用优化AC!!!震惊!!!当前弧优化是假的吧!!! 到现在我也没调出来...大家帮我看看为啥70.... 来讲一下这个题的思路,就是设一个源点 ...
- 洛谷 - P1361 - 小M的作物 - 最小割 - 最大权闭合子图
第一次做最小割,不是很理解. https://www.luogu.org/problemnew/show/P1361 要把东西分进两类里,好像可以应用最小割的模板,其中一类A作为源点,另一类B作为汇点 ...
随机推荐
- js密码的匹配正则
匹配的密码是 数字大写或者小写的字母.符号. if(pwd.match(/[\d]/) && pwd.match(/[A-Za-z]/) && pwd.match(/[ ...
- @RequestBody和@RequestParam、@ResponseBody的使用
一:前沿 针对spring mvc的使用,其实我不怎么熟悉的,因为我只是会用几个常用的注解,其他高深的我都不是很清楚的,而且每次用有时候还需要出查资料的,现在自己记载下吧. 二:内容 (1)这里的@R ...
- bzoj4128 Matrix
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4128 [题解] 矩阵版本的BSGS. 至于如何不需要求逆,详见:http://www.cnb ...
- vc6.0里使用lib(静态库)的方法
vc6.0 中使用lib文件 使用库的方法如下:1. 包含库的头文件(把库的头文件包含到项目中)在应用程序工程中使用#include "file path"file path可以为 ...
- HDU2444(判断是否为二分图,求最大匹配)
The Accomodation of Students Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- TortoiseSVN安装使用【转】
转自:http://www.cnblogs.com/rushoooooo/archive/2011/04/29/2032346.html TortoiseSVN是windows平台下Subversio ...
- Spring --- 异常处理机制
1.定义全局异常处理器,为全局的异常,如出现将调用 error.JSP <!-- 定义异常处理器 --> <bean class="org.springframework. ...
- django自带的orm增删改
# 转载请留言联系 模型管理器 模型管理器:objects属性 每个模型类默认都有一个叫 objects 的类属性,它由django自动生成 我们把 objects 称为 模型管理器,其类型为: dj ...
- k8s job的使用
1.运行一次性容器 容器按照持续运行的时间可分为两类: 服务类容器 服务类容器通常持续提供服务,需要一直运行,比如 http server,daemon 等. 工作类容器 工作类容器则是一次性任务,比 ...
- 根据流程实例ID获取当前任务
JAVA: Task task = this.processEngine.getTaskService().createTaskQuery().processInstanceId(“132501”). ...