
第十一章
图论算法
JILIN.
roo
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
例题 11-1 公共表达式消除(Commone Subexpression Elimination, ACM/ICPC NWERC 2009, UVa12219)
原题链接:https://vjudge.net/problem/UVA-12219 分类:树论 备注:思维 很好的一道题,开始看了lrj的提示后,我先建树给每个结点编号,再独立地又给子树编号,然后再输出,分出了3个DFS,很显然直接TLE了。 后来看了别人的代码,重复子树这一特性可以直接在输出的建树的时候就用,这样就能减少很多操作,根本不需要给每个结点编号。 还有利用cur一遍遍历直接建树也是一个好的技巧。 因为map,所以最后复杂度为nlogn。 #include<bits/stdc++.h>原创 2020-11-28 19:24:10 · 353 阅读 · 0 评论 -
习题11-1 网页跳跃(Page Hopping, ACM/ICPC World Finals 2000, UVa821)
原题链接:https://vjudge.net/problem/UVA-821 分类:图论 备注:Floyd算法 代码如下: #include<cstdio> #include<cstring> #include<vector> #include<map> using namespace std; const int inf = 0x3f3f3f3f; const int maxn = 100 + 5; int g[maxn][maxn]; int main(原创 2020-05-30 22:59:13 · 283 阅读 · 0 评论 -
例题11-4 电话圈(Calling Circles, ACM/ICPC World Finals 1996, UVa247)
原题链接:https://vjudge.net/problem/UVA-247 分类:图论 备注:Floyd传递闭包 注意:逗号后面有空格,否则显示WA 代码如下: #include<iostream> #include<map> #include<vector> #include<cstring> using namespace std; const int maxn = 30; string name[maxn]; int n, m, fa[maxn],原创 2020-05-29 16:26:57 · 258 阅读 · 0 评论 -
例题11-2 苗条的生成树(Slim Span, ACM/ICPC Japan 2007, UVa1395)
原题链接:https://vjudge.net/problem/UVA-1395 分类:图论 备注:kruskal算法,暴力 代码如下: #include<cstdio> #include<algorithm> using namespace std; const int inf = 10000 + 5; const int maxn = 100 + 5; const int maxm = 5000 + 5; int u[maxm], v[maxm], w[maxm], r[maxm原创 2020-05-29 15:55:44 · 340 阅读 · 0 评论