P4174 [NOI2006]最大获利 (最大权闭合子图)

题目链接

题意

建\(i\)站台需要\(p_i\)的花费,当\(A_i,B_i\)都建立时获得\(C_i\)的利润,求最大的利润

思路

最大权闭合子图模板题

参考论文

将所有站台与S连接,边权值为\(P_i\),将第\(i\)个利润与\(T\)连接,边权为\(C_i\),再与\(A_i,B_i\)连接,边权为\(inf\),跑网络流,最小割 = 建立站台的花费 + 不要的利润 ,Ans = 所有的利润 - (建立站台的花费 + 不要的利润) = 所有的利润 - 最小割

最小割 = 最大流

样例图

代码

#include <bits/stdc++.h>
using namespace std;
const int inf = 1<<30;
const int N = 55500;
const int M = 502020;
int f[N], w[M], nxt[M], to[M], h[N];
int num;
void add(int x,int y,int z)
{
to[++num] = y;
w[num] = z;
nxt[num] = f[x];
f[x] = num;
to[++num] = x;
w[num] = 0;
nxt[num] = f[y];
f[y] = num;
}
int bfs(int s,int t)
{
memset(h,0,sizeof(h));
h[s] = 1;
queue <int > q;
q.push(s);
while (!q.empty())
{
int x = q.front();
q.pop();
for (int i = f[x]; i; i = nxt[i])
{
int y = to[i];
if (!h[y] && w[i])
{
h[y] = h[x] + 1;
q.push(y); }
}
}
if (!h[t] ) return 0;
else return 1;
}
int dfs(int x,int t,int flow)
{
if(x==t) return flow;
int fl=0;
for(int i=f[x]; i && flow ;i=nxt[i])
{
if(h[to[i]]==h[x]+1&&w[i])
{
int mi=dfs(to[i],t,min(w[i],flow));
w[i]-=mi; w[i^1]+=mi; fl+=mi; flow-=mi;
}
}
if(!fl) h[x]=-1;
return fl;
}
long long dinic(int s,int t)
{
long long ret = 0;
while (bfs(s,t)) ret += dfs(s,t,inf);
return ret;
}
int main()
{
ios::sync_with_stdio(false);
int n,m;
cin >> n >> m;
num = 1;
for (int i = 1; i <= n; i++)
{
int x;
cin >> x;
add(0,i,x);
}
long long tot = 0;
for (int i = 1; i <= m; i++)
{
int x, y, z;
cin >> x >> y >> z;
tot += z;
add(x,i+n,inf);
add(y,i+n,inf);
add(i+n,m+n+1,z);
}
cout << tot - dinic(0,n+m+1) << endl;
}

P4174 [NOI2006]最大获利 (最大权闭合子图)的更多相关文章

  1. BZOJ1497[NOI2006]最大获利——最大权闭合子图

    题目描述 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机遇,更是挑战.THU集团旗下的CS&T通讯公司在新一代通讯技术血战的前夜,需要做太多的准备工作,仅就站址选择一项,就需要完成 ...

  2. 【BZOJ】1497: [NOI2006]最大获利 最大权闭合子图或最小割

    [题意]给定n个点,点权为pi.m条边,边权为ci.选择一个点集的收益是在[点集中的边权和]-[点集点权和],求最大获利.n<=5000,m<=50000,0<=ci,pi<= ...

  3. bzoj1497 [NOI2006]最大获利 最大权闭合子图

    链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路 最大权闭合子图的裸题 一开始知道是这个最大权闭合子图(虽然我不知道名字),但是我 ...

  4. COGS28 [NOI2006] 最大获利[最大权闭合子图]

    [NOI2006] 最大获利 ★★★☆   输入文件:profit.in   输出文件:profit.out   简单对比时间限制:2 s   内存限制:512 MB [问题描述] 新的技术正冲击着手 ...

  5. bzoj1497 最大获利(最大权闭合子图)

    题目链接 思路 对于每个中转站向\(T\)连一条权值为建这个中转站代价的边.割掉这条边表示会建这个中转站. 对于每个人向他的两个中转站连一条权值为\(INF\)的边.然后从\(S\)向这个人连一条权值 ...

  6. BZOJ 1497 最大获利(最大权闭合子图)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路:由题意可以得知,每个顾客都依赖2个中转站,那么让中转站连有向边到汇点,流量为它的建设费用 ...

  7. 洛谷 P4174 [NOI2006]最大获利 && 洛谷 P2762 太空飞行计划问题 (最大权闭合子图 && 最小割输出任意一组方案)

    https://www.luogu.org/problemnew/show/P4174 最大权闭合子图的模板 每个通讯站建一个点,点权为-Pi:每个用户建一个点,点权为Ci,分别向Ai和Bi对应的点连 ...

  8. BZOJ 1497: [NOI2006]最大获利(最大权闭合子图)

    1497: [NOI2006]最大获利 Time Limit: 5 Sec  Memory Limit: 64 MB Description 新的技术正冲击着手机通讯市场,对于各大运营商来说,这既是机 ...

  9. luogu p4174 最大获利(最大权闭合子图)

    luogu p4174 最大获利(最大权闭合子图) 给定n个点,m条边,每条边有一个贡献,每个点有一个代价.选择一条边,会付出边所连两个点的代价,问最大代价. 我们换个建图方式:把图G中的边\(e_i ...

随机推荐

  1. SpringBoot 2.X整合Mybatis

    1.创建工程环境 勾选Web.Mybatis.MySQL,如下 依赖如下 <dependency> <groupId>org.springframework.boot</ ...

  2. RHEL6.6安装Oracle 11g RAC - 基于VMware的实验环境

    实验环境准备虚拟机:VMware® Workstation 14 Pro操作系统:Red Hat Enterprise Linux 6.6 x86_64rhel-server-6.6-x86_64-d ...

  3. 图解 kubernetes scheduler 架构设计系列-初步了解

    资源调度基础 scheudler是kubernetes中的核心组件,负责为用户声明的pod资源选择合适的node,同时保证集群资源的最大化利用,这里先介绍下资源调度系统设计里面的一些基础概念 基础任务 ...

  4. 比特币学习笔记(一)---在windows下编译搭建比特币环境

    最近打算研究下比特币源码,却发现这套源码正常情况下得在linux下编译运行,而我的机器是windows的. 怎么办呢? 起初打算用mingw和cygwin搞搞看,试了许久后发现行不通,必须转到linu ...

  5. HTTP1.1

    读了一本图解http,总结一下子. 1 .重要的头部   1.TCP/IP 通信传输流 五层模型 先盗个图,重点说明每过一层都会加个头,头很重要啊!其中https 就是在传输层搞事,把本来明文的数据包 ...

  6. Vue中的nextTick()浅析

    引言 在开发过程中,我们经常遇到这样的问题:我明明已经更新了数据,为什么当我获取某个节点的数据时,却还是更新前的数据? 一,浅析 为什么会这样呢?带着这个疑问先往下看. 先看一个小的例子: <d ...

  7. crontab里的特殊符号%导致命令不能执行

    有群里的小伙伴说crontab里的任务不执行,具体是这样的 * * * * /bin/date "+%Y-%m-%d %H:%M:%S" >>/data/tmp/tes ...

  8. 关于pycharm中输出的内容不全的解决办法

    很多时候我们会发现有的时候输出的结果特别多的时候,会在最后输出时用...代替,最后输出一个总长度,那要咋么弄咧? import pandas as pd # 设置显示的最大列.宽等参数,消掉打印不完全 ...

  9. THUWC2020 自闭记

    DAY 1 报道 领胸牌和-围巾-! 发现我和 \(ssf\) 小姐姐一个考场. 合影+开幕式 宾馆睡了一觉-睡上午觉真的舒服. 合影时在c位! 开幕式.比上次夏令营不知道好到哪里去了,讲话都挺有意思 ...

  10. [洛谷P4707] 重返现世

    Description 为了打开返回现世的大门,\(Yopilla\) 需要制作开启大门的钥匙.\(Yopilla\) 所在的迷失大陆有 \(n\) 种原料,只需要集齐任意 \(k\) 种,就可以开始 ...