POJ_强连通分支
smsmn
在学校曾获得过福建省大学生程序设计竞赛并参加过ACM/ICPC亚洲区的预选赛,曾获得过高等数学竞赛一等奖和全国数学建模竞赛福建赛区一等奖;对C#、.net和SQL熟悉,在学校用.net和C#做过教学管理系统;在学校通过了全国计算机四级和大学英语四级的考试。<br/>在工作的这一两年除了用C/C++进行三维开发之外,也涉及了网络编程的开发,对ASIO和socket熟悉。<br/>在杭州和厦门这段时间都是使用OpenGL进行开发,前者是做虚拟现实,后者是底层导航引擎开发。<br/>总之,我对于C/C++开发特别感兴趣,也想在三维、嵌入式、视频监控系统或者游戏方面有所发展。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 3114 Countries in War
http://poj.org/problem?id=3114/* 题意是:给你一些城市,这些城市有些是同一个国家(如果在同一个国家,那么任何两个城市都可以到达---强联通分量),如果不在同一个国家,那么发送信息需要时间 一开始并没有给你哪些城市是同一个国家,你需要自己去判断,最后有些询问,问的是两个城市发送需要多少最短时间 考点:强联通+Dijkstra算法 */ #include #include const int N=510; const int maxint=0x03f3f3f3f;原创 2010-10-24 20:18:00 · 773 阅读 · 0 评论 -
强连通分支算法
<br />#include<iostream> using namespace std; #define MAXN 10000//最多的点数 #define MAXM 10000//最多的边数 struct Node { int to; int next; }graph[MAXM]; int head[MAXN]; int n, m;//顶点数,边数 int low[MAXN], dfn[MAXN];//low[i]表示能回溯到的最小节点,dfn[i]表示访问的顺序 int b原创 2010-11-15 09:42:00 · 1126 阅读 · 0 评论 -
双连通分支与桥 POJ 3694
<br />http://poj.org/problem?id=3694<br />/* 题意:给出一幅图,里面有桥,给出Q个操作每个操作会添加一条边,问每次操作后图中桥的个数 每次求桥会太慢 考虑一下dfs树,树边肯定是桥,然后每连上x,y,就会形成一个环,这个环内的边就全部都不是割边 所以只要找到x,y的lca,把这个路径上的桥标记为否即可 */ #include<iostream> using namespace std; #define MAXN 1000原创 2010-10-29 21:32:00 · 724 阅读 · 0 评论 -
双连通分支 POJ 3177 3352
http://poj.org/problem?id=3177/* 题目大意:给定一个双向连通的公路网,当某些公路路段检修的时候可能会由于该段公路不通, 可能会使某些旅游点之间无法通行,求至少新建多少条公路,使得任意对一段公路进行检修的时候, 所有的旅游景点之间仍然畅通; ---双连通分量分两种,一种是删除一条边仍然连通的,叫做边连通分量,以桥为分割, 另外一个是删除一个点仍然连通,叫点连通分量. ---其实把所有的桥都找出来就可以进行划分了,由于在计算连通分量的tarja原创 2010-10-28 21:34:00 · 1026 阅读 · 1 评论 -
POJ_2762
<br />http://poj.org/problem?id=2762<br />为什么我的就一直是RE啊?费解!!<br />/* 题意:给出n个点和m条边,接着给出直接相连的边(注意是有向边),求解任意x,y两点间是否存在x可到达y或者y可 到达x,如果任意x和y都满足这样的条件就输出"Yes",否则输出"No". 先求解出该有向图的强连通分量,然后根据求解出来的强连通分量进行缩点重新建图, 那么问题就转换为求解在新图中是否存在一条能走完所有的顶点的路径,这时可以对缩点后的新图进行拓扑排序原创 2010-10-26 20:35:00 · 866 阅读 · 0 评论 -
POJ_2553 求出度为0的强连通分支
<br />http://poj.org/problem?id=2553<br />//强连通分支,求出度为0 的强连通分支 #include<iostream> #include<vector> using namespace std; #define M 5001 vector<int> graph[M]; vector<int> graph_t[M]; bool v[M]; int outdegree[M], father[M]; vector<int> finish; int n原创 2010-10-26 19:17:00 · 503 阅读 · 0 评论 -
POJ_1659 Frogs' Neighborhood
<br />http://poj.org/problem?id=1659<br />#include<iostream> #include<algorithm> using namespace std; struct node{ int i,x; }map[10]; int cmp(const void *a,const void *b) { return ((*(node*)b).x -(*(node*)a).x); } int main() { // freopen("in.原创 2010-10-26 19:15:00 · 557 阅读 · 0 评论 -
POJ_1236 强连通分支
<br />http://poj.org/problem?id=1236<br />#include <iostream> #include <string.h> #include <stack> #define MAX 101 using namespace std; int n,g[MAX][MAX],tmp,in[MAX],out[MAX]; int dfn[MAX],low[MAX],index=1,cnt=0,belong[MAX]; bool instack[MAX]; stac原创 2010-10-26 19:13:00 · 533 阅读 · 0 评论 -
POJ_2186 Popular Cows
<br />http://poj.org/problem?id=2186<br />#include <cstdlib> #include <iostream> using namespace std; #define Max 10010 struct node{ int to; node *next; }; int stack[Max]; //DFS存节点的栈 int low[Max],ord[Max], id[Max],n,m,cnt,scnt,n2,原创 2010-10-26 19:18:00 · 570 阅读 · 0 评论 -
HOJ
HOJ http://acm.hdu.edu.cn/showproblem.php?pid=1269//版本2 邻接表建图 tarjan 与上面的风格也不一样,参考的是吉林大学的代码库 #include #include #include #include #define V 10001 using namespace std; vectorvec[V]; int id[V],pre[V],low[V],s[V],stop,cnt,scnt; void tarjan(int v,i原创 2010-10-21 21:41:00 · 748 阅读 · 0 评论 -
强连通分支
1。定义:有向图强连通分量:在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。现在来说说求有向图强连通分支的tarjan算法:算法思路:这个算法思路不难理解,由开篇第一句话可知,任何一个强连通分量,必定是对原图的深度优先搜索树的子树。那么其实,我们只要确定每个强连通分量的子树的根,然后根据这原创 2010-10-21 21:35:00 · 2783 阅读 · 2 评论 -
POJ_3160
<br />http://poj.org/problem?id=3160<br />/* 题意:一个老师要给学生送礼物,每个学生不在同一宿舍,现在题目一个n个学生,m个边,每个学生有一个值, 要你求这个老师能得到的最大值 scc+dp dp[i]表示走到节点i能取到的最大值 */ #include<iostream> using namespace std; #define MAXN 30005 #define MAXM 150005 struct Node { int to;原创 2010-11-15 16:39:00 · 1014 阅读 · 0 评论
分享