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

网站建设与管理 教学设计搜索seo怎么优化

网站建设与管理 教学设计,搜索seo怎么优化,翔云白云手机网站建设,大连模板网站制作报价题意 传送门 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.hrbkazy.com/news/25639.html

相关文章:

  • 青岛高端网站设计公司百度标记号码认证平台
  • 无毒一级床上做視频黄色网站手机网站排名优化软件
  • 目前电商平台有哪些优化的含义是什么
  • wordpress当前分类热门调用南宁seo营销推广
  • 日本真人做a视频网站免费的关键词优化软件
  • 六安网站优化购物网站哪个最好
  • 游戏公司做网站设计赚钱吗企业网络营销策划方案
  • wap织梦手机网站软件开发工资一般多少
  • 公司长沙建站长春网长春关键词排名站设计
  • asp做的药店网站模板软考培训机构排名
  • 服装网站建设优点和缺点杭州网站优化咨询
  • 公司网站建设阿里云青岛网站seo
  • 大连开发区做网站的公司搜索引擎的优化和推广
  • 室内设计师找图片的网站公司产品推广方案
  • 手机网站建设推广个人网站seo入门
  • 政府网站建设思路南平seo
  • 汕头网站建设模板推荐6个免费国外自媒体平台
  • 顺德网站建设公司价位企业如何进行品牌推广
  • wordpress 站群注意怎么seo关键词优化排名
  • 网站建立免费网络营销服务公司
  • 培训网站建设情况百度移动端优化
  • 有个网站叫设计什么seo线下培训班
  • 什么网站做简历今天国际新闻最新消息
  • 外贸独立站建站详细步骤地推团队如何收费
  • 泉州网络推广公司北京seo公司华网白帽
  • 济宁市中网站建设关键词搜索排行榜
  • wordpress升级后乱码西安seo外包公司
  • 一个微信网站多少钱站长工具友链查询
  • 360建筑网是什么网站站长之家ppt模板
  • 用手机做网站好学吗原创文章代写