poj 3895(求无向图的最大简单环)
来源:互联网 发布:dj香烟淘宝链接 编辑:程序博客网 时间:2024/05/22 04:42
题目链接:http://poj.org/problem?id=3895
思想很简单,就是dfs,并且用一个数组记录到该节点所走过的长度,然后如果遇到已经走过的,就说明存在环了, 更新一下ans。
1 /************************************************************************* 2 > File Name: poj3895.cpp 3 > Author: syhjh 4 > Created Time: 2014年03月02日 星期日 21时06分39秒 5 ************************************************************************/ 6 #include <iostream> 7 #include <cstdio> 8 #include <cstring> 9 #include <algorithm>10 using namespace std;11 12 const int MAXN = (5000 + 50);13 struct Edge {14 int v, next;15 } edge[MAXN << 1];16 17 int n, m, NE, ans;18 int head[MAXN];19 20 void Insert(int u, int v) 21 {22 edge[NE].v = v;23 edge[NE].next = head[u];24 head[u] = NE++;25 }26 27 bool mark[MAXN];28 int dp[MAXN];29 30 void dfs(int u, int len)31 {32 mark[u] = true;33 dp[u] = len;34 for (int i = head[u]; i != -1; i = edge[i].next) {35 int v = edge[i].v;36 if (!mark[v]) {37 dfs(v, len + 1);38 } else {39 ans = max(ans, dp[u] - dp[v] + 1);40 }41 }42 }43 44 int main()45 {46 int _case;47 cin >> _case;48 while (_case--) {49 cin >> n >> m;50 NE = 0;51 memset(head, -1, sizeof(head));52 while (m--) {53 int u, v;54 cin >> u >> v;55 Insert(u, v);56 Insert(v, u);57 }58 ans = 0;59 memset(mark, false, sizeof(mark));60 for (int i = 1; i <= n; i++) {61 if (!mark[i]) {62 dfs(i, 1);63 }64 }65 if (ans <= 2) {66 cout << 0 << endl;67 } else68 cout << ans << endl;69 }70 return 0;71 }
0 0
- poj 3895(求无向图的最大简单环)
- poj 3895 【无向图最大环】
- POJ 1144 Network(简单求无向图割顶数)
- POJ 1144 Network(简单求无向图割顶数)
- POJ 1144 Network(简单求无向图割顶数)
- POJ 1966--Cable TV Network 【求无向图的点连通度 构造最大流模型 && dinic】
- poj 2377 无向图的最大生成树
- poj 1966 zoj 2182 Cable TV Network(无向图顶点连通度(sap求最大流))
- 算法 图中求最小环路径 最小环个数 最大平均环 求简单无向图中环的个数
- 算法 图中求最小环路径 最小环个数 最大平均环 求简单无向图中环的个数
- poj 1523 SPF(无向图求关节点)
- poj 3352 求双连通分量 (无向图)
- 求简单无向图中环的个数
- poj 1419 Graph Coloring(无向图的最大独立集)
- poj 2117(tarjan 求无向图去掉一点的连通分量)
- 求无向图的割点 (poj 1144 Network)
- 求无向简单图的割点与割线的问题(邻接矩阵)
- [容易] 并查集的优雅实现(实例:求无向图最大连通块结点数)
- loj 1357(树形dp)
- loj 1210 (求最少的加边数使得图变成强连通)
- loj 1406(状态压缩)
- loj 1429(可相交的最小路径覆盖)
- poj上的dp专题
- poj 3895(求无向图的最大简单环)
- spfa求最长路
- FANN的图形用户界面形式
- hdu 3001(状压dp, 3进制)
- zoj 3471(状态压缩)
- 汇编考试小结
- 单调队列,斜率优化dp 专题
- zoj 3644(dp + 记忆化搜索)
- 线段树专题训练