当前位置: 首页 > news >正文

深圳网站建设方案维护如何为旅游网站店铺做推广营销

深圳网站建设方案维护,如何为旅游网站店铺做推广营销,安卓市场官方版,京东网上购物官方网站题意 传送门 AtCoder ABC239G Builder Takahashi 题解 将原图中每个节点拆为入点 v v v 与出点 v ′ v v′,对于原图任一边 ( u , v ) (u,v) (u,v) 则 u ′ → v , v → u u\rightarrow v, v\rightarrow u u′→v,v→u 连一条容量为 ∞ \infty ∞ 的边&…
题意

传送门 AtCoder ABC239G Builder Takahashi

题解

将原图中每个节点拆为入点 v v v 与出点 v ′ v' v,对于原图任一边 ( u , v ) (u,v) (u,v) u ′ → v , v → u u'\rightarrow v, v\rightarrow u uv,vu 连一条容量为 ∞ \infty 的边,对于原图每一个点, v → v ′ v\rightarrow v' vv 连一条容量为 c v c_v cv 的边。此时答案为新图的最小割。

对于最小割集的求解,求解最大流后,从源点出发在残余网络中 DFS,对所有可达的点打上标记,最终满足 v v v 被标记而 v ′ v' v 未被标记的节点则属于最小割集。

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
constexpr ll INF = 1e18;
struct MaxFlow {struct Edge {int to;ll cap;int rev;};vector<int> iter, level;vector<vector<Edge>> g;MaxFlow(int n) : iter(n), level(n), g(n) {}void add_edge(int from, int to, ll cap) {g[from].push_back({to, cap, (int)g[to].size()});g[to].push_back({from, 0, (int)g[from].size() - 1});}void bfs(int s) {fill(level.begin(), level.end(), -1);queue<int> q;level[s] = 0;q.push(s);while (!q.empty()) {int v = q.front();q.pop();for (auto [to, cap, _] : g[v]) {if (cap > 0 && level[to] == -1) {level[to] = level[v] + 1;q.push(to);}}}}ll dfs(int v, int t, ll f) {if (v == t) {return f;}for (int &i = iter[v]; i < (int)g[v].size(); ++i) {auto &e = g[v][i];if (e.cap > 0 && level[v] < level[e.to]) {int d = dfs(e.to, t, min(f, e.cap));if (d > 0) {e.cap -= d;g[e.to][e.rev].cap += d;return d;}}}return 0;}ll max_flow(int s, int t) {ll flow = 0;for (;;) {fill(iter.begin(), iter.end(), 0);bfs(s);if (level[t] == -1) {return flow;}ll f;while ((f = dfs(s, t, INF)) > 0) {flow += f;}}}
};
int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int n, m;cin >> n >> m;MaxFlow flow(n * 2);for (int i = 0; i < m; ++i) {int u, v;cin >> u >> v;u -= 1, v -= 1;flow.add_edge(v + n, u, INF);flow.add_edge(u + n, v, INF);}for (int v = 0; v < n; ++v) {int c;cin >> c;flow.add_edge(v, v + n, c);}cout << flow.max_flow(0 + n, n - 1) << '\n';vector<int> used(2 * n);auto dfs = [&](auto dfs, int v) -> void {used[v] = 1;for (auto [to, cap, _] : flow.g[v]) {if (cap > 0 && !used[to]) {dfs(dfs, to);}}};dfs(dfs, 0 + n);vector<int> vs;for (int v = 0; v < n; ++v) {if (used[v] && !used[v + n]) {vs.push_back(v);}}cout << (int)vs.size() << '\n';for (int v : vs) {cout << v + 1 << ' ';}cout << '\n';return 0;
}
http://www.yayakq.cn/news/57901/

相关文章:

  • 游戏网站建设与策划书wordpress修改域名
  • 黄页广告网站专业的丹徒网站建设
  • 刚接触网站建设有哪些问题做书网站 时光
  • 网站怎么做能中英文的制作网页时首先要确定什么
  • 建设网站的企业哪家好咨询机构
  • 360个人网站建设云南网站建设企业推荐
  • 360网站推广官网软件网上推广方法有哪些
  • 盐城建设银行网站微信公众号和网站建设的意义
  • 镇江网站建设推广域名官网
  • 怎么制定网站关键少数
  • 东西湖建设局网站西安网站制作模板
  • 时间轴网站设计湖南省城乡住房建设厅网站
  • 网站开发需要多少钱新闻档案网站建设网页
  • 网站版块模板沈阳和平三好街做网站
  • 常德网站开发网站运营晋城市公用事业建设局网站
  • 海口什么网站建设设计公司logo需要多少钱
  • 做京东一样的网站官网建站平台
  • 商城网站建设公司招聘温州做网站制作哪家好
  • 网页设计网站世界杯企业seo蜘蛛屯
  • 做盒饭的网站免费设计logo的app
  • 商业网站开发选题的目的福州论坛建站模板
  • 人才网站建设策划书优化品牌seo关键词
  • 建设网站服务器 知乎wordpress d8 4.1
  • 苏州公司建设网站redhat7做网站过程
  • 前端可以自己做网站么做直播网站vps可以吗
  • 网站主体负责人 法人自己做网站开店
  • 网站开发简单吗支持企业网站发布要怎么做
  • 创建网站时可使用的数据库有动漫设计招聘信息
  • 5网站建设公司个人网站做淘宝客教程
  • 网站建设的目的公司网站建设 入账