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

高级网站开发工程师考试题如何选择医疗网站建设

高级网站开发工程师考试题,如何选择医疗网站建设,建筑网入口,怎样更改WordPress的密码之前那篇博客是在入门网络流时写的#xff0c;现在对网络流重新有了一定的理解。 1. 最大流 FF 增广思想 Ford–Fulkerson 增广#xff0c;核心即不断找增广路并增广。 dfs 实现 // FF brute #include bits/stdc.h #define int long longusing namespace std;in…之前那篇博客是在入门网络流时写的现在对网络流重新有了一定的理解。 1. 最大流 FF 增广思想 Ford–Fulkerson 增广核心即不断找增广路并增广。 dfs 实现 // FF brute #include bits/stdc.h #define int long longusing namespace std;int n, m, s, t, r[205][205], ans;bool vis[205]; int dfs(int u, int sum) // sum流入 u 的流量 {if(sum 0 or u t) return sum;vis[u] true;int flow 0;for(int i1; in; i){if(!vis[i] and r[u][i] 0){//找 u 到 t 路上的最小限制并增广int d dfs(i, min(sum, r[u][i]));r[u][i] - d, r[i][u] d;flow d, sum - d;}}return flow; }signed main() {cin n m s t;for(int i1; im; i){int u, v, w;cin u v w;r[u][v] w;}int d;while(d dfs(s, 1e9)) {memset(vis, 0, sizeof(vis));ans d;}cout ans; }这种方法的复杂度与最大流 f f f 有关至多执行 f f f 轮 dfs时间复杂度 O ( n f ) O(nf) O(nf)。 bfs 实现 / EK FF 增广的 bfs 实现也称 EK 算法。 // FF EK#include bits/stdc.h #define int long longusing namespace std;int n, m, s, t, r[205][205], ans, d[205], pre[205]; queue int q; bool bfs() {memset(d, 0, sizeof(d)); memset(pre, 0, sizeof(pre));d[s] 1, q.push(s); while(!q.empty()){int u q.front(); q.pop();for(int i1; in; i)if(d[i] 0 and r[u][i] 0)pre[i] u, d[i] d[u] 1, q.push(i);}return d[t]; }int augment() {int flow 1e9;for(int at; a!s; apre[a]) flow min(flow, r[pre[a]][a]);for(int at; a!s; apre[a]) r[pre[a]][a] - flow, r[a][pre[a]] flow;return flow; }signed main() {cin n m s t;for(int i1; im; i){int u, v, w;cin u v w;r[u][v] w;}while(bfs()) ans augment();cout ans; }EK 算法的时间复杂度是 O ( n m 2 ) O(nm^2) O(nm2)。 证明每条边至多做 n 2 \dfrac n 2 2n​ 次增广路上的关键边。 OI-wiki Dinic 通过 bfs 对图分层标记每次 dfs 只访问下一层的结点。 同时加上当前弧优化即不重复访问满流边维护第一条有必要尝试的边。 // dinic#include bits/stdc.h #define int long longusing namespace std;struct Edge{int nxt, to, r; }e[10005];int tot 1, head[205]; void add_edge(int u, int v, int w) {e[tot] {head[u], v, w};head[u] tot; }int n, m, s, t, ans, d[205], cur[205];queue int q; bool bfs() {memset(d, 0, sizeof(d)); d[s] 1, q.push(s); while(!q.empty()){int u q.front(); q.pop();for(int ihead[u]; i; ie[i].nxt){int v e[i].to;if(d[v] 0 and e[i].r 0)d[v] d[u] 1, q.push(v);}}return d[t]; }int dfs(int u, int sum) {if(sum 0 or u t) return sum;int flow 0;for(int icur[u]; i; ie[i].nxt){cur[u] i;int v e[i].to;if(d[v] d[u] 1 and e[i].r 0){int d dfs(v, min(sum, e[i].r));e[i].r - d, e[i^1].r d;flow d, sum - d;}}return flow; }signed main() {cin n m s t;for(int i1; im; i){int u, v, w;cin u v w;add_edge(u, v, w);add_edge(v, u, 0);}while(bfs()) {for(int i1; in; i) cur[i] head[i];ans dfs(s, 1e9);}cout ans; } 2. 二分图最大匹配 二分图对于 G ( V , E ) G(V,E) G(V,E)分成两个点集 V 1 , V 2 V1,V2 V1,V2 对于所有的 ( u , v ) ∈ E (u,v) \in E (u,v)∈E 保证 u , v u,v u,v 属于不同点集。 容易发现二分图中不存在奇环。 二分图的匹配选定一些边这些边之间没有公共点。 建网络流模型即可通过虚拟源点和虚拟汇点限制 1 1 1。 如果要输出方案可以通过 f ( u , v ) c ( u , v ) f(u,v) c(u,v) f(u,v)c(u,v)判断。如果根据残量网络需要根据反向边的残量网络判断。 #include bits/stdc.h using namespace std;int n, m, s, t, r[105][105], ans, d[105], cur[105]; queue int q; bool bfs() {memset(d, 0, sizeof(d)); d[s] 1, q.push(s); while(!q.empty()){int u q.front(); q.pop();for(int i1; in2; i)if(d[i] 0 and r[u][i] 0)d[i] d[u] 1, q.push(i);}return d[t]; }int dfs(int u, int sum) {if(sum 0 or u t) return sum;int flow 0;for(int vcur[u]; vn2; v){cur[u] v;if(d[v] d[u] 1 and r[u][v] 0){int d dfs(v, min(sum, r[u][v]));r[u][v] - d, r[v][u] d;flow d, sum - d;}}return flow; }int main() {ios::sync_with_stdio(false);cin.tie(0);cin m n;s n1, t n2;while(1){int u, v;cin u v;if(u -1 and v -1) break;r[u][v] 1;}for(int i1; im; i) r[s][i] 1;for(int im1; in; i) r[i][t] 1;while(bfs()) {for(int i1; in2; i) cur[i] 1;ans dfs(s, 1e9);}cout ans \n;for(int u1; um; u){for(int vm1; vn; v){if(r[v][u]) cout u v \n;}} return 0; } 3. 最大权闭合子图 分成正点和负电把不选正点看作损失每一种割对应一种方案代表不选。 答案即为正收益减去最小损失即最小割根据最小割最大流即最大流。 具体可以看我之前的博客 浅谈网络流。 A. CF1783F Double Sort II 错排建图的套路。 先只考虑一个数列记 i i i 所在位置 p i p_i pi​将 i → p i i \to p_i i→pi​ 建边形成若干个环每次操作可以让环上少一个点因此最小操作次数为 n n n 减去环的数量。 如果从反面出发想最多能保留几个点可以不动省操作次数能保留的数量就是环的数量。 考虑两个数列对于一个环最多被省一个点。对于一个点最多被省一次。 按 i i i 所在的两个环建边跑二分图最大匹配即可。
http://www.zqtcl.cn/news/73935/

相关文章:

  • 食品网站建设方案济南网站建设首选传承网络
  • 公司网站制作公建设公司网站入账
  • 美食美客网站建设WordPress账号申请
  • 好看的网站模板百度关键词查询排名
  • 动画网页制作网站抖音seo排名软件
  • 优化网站价位logo123设计网
  • 安徽p2p网站建设云南网站建设首选才力
  • wordpress搞笑网站源码小程序推广宣传词
  • 平安建设网站河南网站建设哪里有
  • 高中毕业学网站开发如何选择编程培训机构
  • 免费网站怎么建立装饰公司名字大全
  • 网站权重批量查询有偿做设计的网站
  • 谁可以帮我做网站龙岗在线网站制作
  • 成都创意网站设计网页打不开微信可以上什么原因
  • 如何在社交网站上做视频推广福州公司排名
  • 怎么做qq靓号网站平度市网站建设
  • 知名网站建设公新东方托福班价目表
  • 湖北seo整站优化世界企业排名500强
  • 建建建设网站公司电话重庆百度推广优化排名
  • 哪些网站做推广效果好南京 外贸网站建设
  • 网站关键词可以做几个近三天新闻50字左右
  • 西部数码网站备案查询个人备案网站可以做新闻站吗
  • 动易网站设计方案设计师常用的图片网站
  • 网站建设的推广渠道长沙建站标协助找有为太极
  • 商城微网站模板网站生成word
  • 互联网行业信息网站信息图表设计网站
  • 半岛建设公司网站郑州注册公司网站
  • 单页站如何做网站seo优化wordpress,视频直播
  • c mvc 网站开发进阶之路淘宝佣金推广网站建设
  • 浙江 网站建设南通公司做网站