题目大意:一张无向图$G=(V,E)$,定义$f(G)=\sum\limits_{e\in E}w_e-\sum\limits_{v\in V}w_v$,给一张$n(n\leqslant10^3)$个点$m(m\leqslant10^3)$条边的无向图,求$\max_{G'\in G}\{f(G')\}$。

题解:最大权闭合子图。

源点往有代价物品连其边权为其代价的边。

有代价物品往选了它可能产生收益的组连边权为的边。

每个组往汇点连边权为其收益的边。

由源点向原图中的每条边连一条容量为其收益的边,原图中的边向它的两个端点连容量为$\infty$的边,原图中的每个点向汇点连容量为其代价的边

把总收益减去最小割即可

卡点:

C++ Code:

#include <algorithm>
#include <cstdio>
#define maxn 1010
#define maxm 1010
const int N = maxn + maxm, M = N + 2 * maxm;
const int inf = 0x3f3f3f3f;namespace Network_Flow {int lst[N], head[N], cnt = 1;struct Edge {int to, nxt, w;} e[M << 1];inline void addedge(int a, int b, int c) {e[++cnt] = (Edge) { b, head[a], c }; head[a] = cnt;e[++cnt] = (Edge) { a, head[b], 0 }; head[b] = cnt;}long long MF;int n, st, ed;int GAP[N], d[N];int q[N], h, t;void init() {GAP[d[ed] = 1] = 1;for (int i = 0; i < n; ++i) lst[i] = head[i];q[h = t = 0] = ed;while (h <= t) {int u = q[h++];for (int i = head[u]; i; i = e[i].nxt) {int v = e[i].to;if (!d[v]) {d[v] = d[u] + 1;++GAP[d[v]];q[++t] = v;}}}}int dfs(int u, int low) {if (!low || u == ed) return low;int w, res = 0;for (int &i = lst[u]; i; i = e[i].nxt) if (e[i].w) {int v = e[i].to;if (d[u] == d[v] + 1) {w = dfs(v, std::min(low, e[i].w));res += w, low -= w;e[i].w -= w, e[i ^ 1].w += w;if (!low) return res;}}if (!(--GAP[d[u]])) d[st] = n + 1;++GAP[++d[u]], lst[u] = head[u];return res;}void ISAP(int S, int T) {st = S, ed = T;init();while (d[st] <= n) MF += dfs(st, inf);}
}
using Network_Flow::addedge;int n, m;
long long sum;
int main() {scanf("%d%d", &n, &m); Network_Flow::n = n + m + 2;int st = 0, ed = n + m + 1;for (int i = 1, x; i <= n; ++i) {scanf("%d", &x);addedge(st, i, x);}for (int i = 1, a, b, c; i <= m; ++i) {scanf("%d%d%d", &a, &b, &c);addedge(a, n + i, inf);addedge(b, n + i, inf);addedge(n + i, ed, c);sum += c;}Network_Flow::ISAP(st, ed);printf("%lld\n", sum - Network_Flow::MF);return 0;
}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/10341430.html

[CF1082G]Petya and Graph相关推荐

  1. CF1082G Petya and Graph(最小割,最大权闭合子图)

    QWQ嘤嘤嘤 感觉是最水的一道\(G\)题了 顺便记录一下第一次在考场上做出来G qwqqq 题目大意就是说: 给你n个点,m条边,让你选出来一些边,最大化边权减点权 \(n\le 1000\) QW ...

  2. CodeForces1082G Petya and Graph 最小割

    网络流裸题 \(s\)向点连边\((s, i, a[i])\) 给每个边建一个点 边\((u, v, w)\)抽象成\((u, E, inf)\)和\((v, E, inf)\)以及边\((E, t, ...

  3. [洛谷P4174][NOI2006]最大获利

    题目大意:同Petya and Graph,数据范围改成$n\leqslant5\times10^3,m\leqslant5\times10^4$ 题解:同上 卡点:无 C++ Code: #incl ...

  4. Educational Codeforces Round 55 (Rated for Div. 2)

    A.Vasya and Book 三种情况讨论一下 1 #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 ...

  5. 图融合GCN(Graph Convolutional Networks)

    图融合GCN(Graph Convolutional Networks) 数据其实是图(graph),图在生活中无处不在,如社交网络,知识图谱,蛋白质结构等.本文介绍GNN(Graph Neural ...

  6. Graph Representation 图神经网络

    Graph Representation 图神经网络 图表示学习(representation learning)--图神经网络框架,主要涉及PyG.DGL.Euler.NeuGraph和AliGra ...

  7. TVM 图优化Graph Optimization

    TVM 图优化Graph Optimization Codegen

  8. ONNX 实时graph优化方法

    ONNX 实时graph优化方法 ONNX实时提供了各种图形优化来提高模型性能.图优化本质上是图级别的转换,从小型图简化和节点消除,到更复杂的节点融合和布局优化. 图形优化根据其复杂性和功能分为几个类 ...

  9. MIT Graph实践概述

    MIT Graph实践概述 Features功能 • iCloud Support • Multi Local & Cloud Graphs • Thread Safe • Store Any ...

最新文章

  1. Android启动脚本init.rc(2)
  2. python培训班排行榜-西安Python培训班排行榜
  3. GridView里面的HyperLink和ButtonField操作总结
  4. 太原理工软件学院c语言2020,太原理工软件工程C语言实验报告 数组.doc
  5. PoE交换机的选择和使用注意事项介绍
  6. bzoj 3173 最长上升子序列
  7. Visual Paradigm(一)简介和软件初步
  8. ubuntu16.04下Qt无法输入中文注释
  9. linux windows双系统安装教程
  10. 1. 走进Java语言 —— Java SE
  11. Linux Oracle卸载步骤
  12. Docker安装JanusGraph
  13. 企业开票信息税号查询API接口服务
  14. 360 路由器设置 虚拟服务器,360安全路由器的设置方法
  15. HBase 常用操作
  16. C语言中空格,空字符,字符数组结束符的区别
  17. 【C++基础】 switch case语句
  18. 日式键盘与美式键盘转换
  19. android黑盒子调用,[原创]Android群控黑盒调用 - Sekiro食用手册
  20. 利用ArcGIS做一张“三调“土地利用现状图(附三调符号库下载)

热门文章

  1. 史丹利谋定跨国合作-万祥军:对话国际农民丰收节贸易会
  2. 二年级的数学题,10个人有9个人做错,你能做对吗?
  3. 关于 JS 模块化的最佳实践总结
  4. JS实现表格Table动态添加删除行
  5. MyEclipse常用快捷键及快捷键大全
  6. oracle 序列的使用
  7. zoj3381 Osaisen Choudai!
  8. QT 在定义新的类型时候,注意了(定义了ReadXml),在实现的时候加上Qlabel
  9. VIM查找替换归纳总结
  10. Char.IsDigit与Char.IsNumber的区别[转]