摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=115本题求单源最短路,这里有个技巧,因为源点不一,这时我们可以设置一个“超级源点”,即数组下标为0的点,这是只要该点到真正源点的距离为0就可以了。下面是AC代码: 1 #include 2 #include 3 #include 4 #define INF 1000000000 5 int map[1005][1005],flag[1005],dis[1005]; 6 int n; 7 8 int min(int a,int b) {return adis[k]+map[k][j]). 阅读全文
posted @ 2013-09-12 20:02 hjf007 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=42一笔画问题是欧拉回路的一个变形,可以一笔画的条件有两个:1、所有顶点必须连通 2、度数为奇数的点有0个或2个,若有两个必然一个是起点,一个是终点。考虑用dfs遍历图,判断是否连通, 结合度数的特点,判断即可。当然本题我的代码用时28MS,但是这个0MS通过的人非常多,可以采用并查集的方法,我的并查集代码用时4MS,看来还是有待提高啊……方法一、DFS 1 #include 2 #include 3 #include 4 int map[1005][1005]; 5 int flag[ 阅读全文
posted @ 2013-09-12 18:39 hjf007 阅读(792) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=20首先这题看出是个图的生成树,用pre数组记录下父节点的值,深搜即可,深搜过程中记录父节点位置。由于节点树较多,这里采用C++ STL中的vector容器来存储图。 1 #include 2 #include 3 #include 4 #include 5 6 using namespace std; 7 8 int pre[100005]; 9 vector v[100005];10 11 void dfs(int x)12 {13 for(int i=0;i<v[x]... 阅读全文
posted @ 2013-09-12 16:11 hjf007 阅读(188) 评论(0) 推荐(0) 编辑