Algorithm_图论
文章平均质量分 80
niuox
这个作者很懒,什么都没留下…
展开
-
Hoj 1614 Communication Planning for Phobos
本题是求最小生成树的典型题目。题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1614采用Prim算法求最小生成树。关于如何求球面上任意两点A(a1,b1)和 B( a2,b2 ) 的球面距离,a1,a2是经度,b1,b2是纬度,参考公式:r * acos(cos(a1 - a2) * cos(b1) * cos(b2) + sin(原创 2013-02-11 16:33:45 · 734 阅读 · 0 评论 -
Hoj 2421 Hie with the Pie
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2421求多源最短路,用Floyed,本题所经历的节点不确定,用排列组合(next_permutation(a,a+n))依次遍历即可。#include #include #include #include #include #include #include #include原创 2013-04-15 17:04:00 · 664 阅读 · 0 评论 -
Hoj 1168 Trees on the level
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1168刘汝佳《算法竞赛入门经典》101页的原题,层序遍历一棵树即可。本题实际上联系字符串处理上面,直接使用strchr()字符串即可,strchr(s,',')返回字符串s中从左往右第一个字符','的指针。#include #include #include #include #in原创 2013-04-21 22:16:28 · 707 阅读 · 0 评论 -
Poj 3013 Big Christmas Tree
题目链接:http://poj.org/problem?id=3013本题是最短路问题。但是较特殊的一点是边少点多。构建临界矩阵不合理,因为是稀疏图,且点较多,会爆栈。所以,正确的做法使用邻接表,邻接表又分为基于点的邻接表和基于边的,对于本题而言,我们用基于边的链式前向星较好。另外,对于最短路的处理,我们用SPFA较好。所以,综合,本题练习基于前向星的SPFA。其实,SPF原创 2013-04-04 19:25:32 · 886 阅读 · 0 评论 -
Hoj 1520 The Bottom of a Graph/Poj 2186 Popular Cows/Poj 1904 King's Quest
这几题练习强连通分量的Tarjan求法:在一个有向图中,如果两个点a,b之间存在a->b的路径以及b->a的路径,则称a与b在同一强联通分量(SCC,strongly connected component)之中。因此可以将图划分为几个子图,每一个子图中都是一个极大强联通分量。如果将所有的强连通分量都缩成一个点,原图就变成了一个DAG(有向无环图)。可以用Tarjan算法、Kosara原创 2013-08-20 08:50:52 · 816 阅读 · 0 评论 -
Poj 1144 Network
题目:http://poj.org/problem?id=1144Tarjan无向图求割点。#include #include #include #include #include #include using namespace std;#define Maxn 105#define Maxm 10005struct Edge{ int a,b;}edge[原创 2013-08-21 17:14:29 · 705 阅读 · 0 评论 -
Hoj 1917 Peaceful Commission
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=19172-sat问题。如果a和b矛盾,那么a向b的反面连一条线。以此建立了一颗有向图,然后对此图求强连通分量后缩点,反向连线后形成一个DAG图。然后对此图求拓扑排序即可。#include #include #include #include #include #includ原创 2013-08-21 17:21:29 · 798 阅读 · 0 评论 -
Hoj 2632 Blanks in a Table
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=2632题意:设a代表非空,a'代表空。b代表非空,b'代表空。那么:有n个条件要求a和b不可同时为空,则:a->b',b->a'有p个条件要求a和b至少有一个为空,则:a'->b,b'->a#include #include #include #include #in原创 2013-08-21 20:22:14 · 787 阅读 · 0 评论 -
Hoj 1961 Arctic Network/Hoj 2507 The Bug Sensor Problem
两道求最小生成树第K大(小)边的题目。一般这种题目都是一个原本的连通图分割成s个连通分量,求这些连通分量中最长边。那么这就是求原图中最小生成树中第s大的边的长度。因为连接这s个连通分量的边肯定要求是前s-1长的边,这些边有s-1个。第一题:Hoj 1961 Arctic Network题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=19原创 2013-08-22 09:46:55 · 2348 阅读 · 0 评论 -
Hoj 1086 Don't Get Rooked
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1086本题数据范围较小,可以暴力搜索过。如果数据范围大一些的话,可以使用二分图。先以行考虑,每行中,没有墙分割的点集合为一块。这样扫描后会形成rNum块。再以列考虑,每列中,没有墙分割的点集合为一块。这样扫描后会形成cNum块。然后如果行块与列块之间为二分图的左右部分,如果两者之间有个公原创 2013-08-20 21:19:48 · 780 阅读 · 0 评论 -
欧拉回路
1.无向图的欧拉回路判断:如果一个无向图是连通的,并且每个点的度是偶数,那么这个无向图具有欧拉回路,所以无向图的欧拉回路判断是非常简单的,只需要一次BFS就可以搞定了。练习:Hdu 1878 欧拉回路 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1878#include #include #include #include原创 2013-09-29 18:10:29 · 10637 阅读 · 0 评论 -
Vijos 1082 丛林探险
题目链接:https://vijos.org/p/1082本题本来是练习SPFA的。我一看DIscuss能用裸搜。果断敲了一个前向星+DFS,居然超时了。后来发现是Next数组开小了,应该开成两倍边数的大小。后来我又把前向星改成邻接表,也AC了。。最后写一发SPFA。前向星+DFS+剪枝:(AC):#include #include #include #inclu原创 2013-04-05 11:00:09 · 1108 阅读 · 0 评论 -
Hut 1997 Seven tombs
题目连接:http://openoj.awaysoft.com/JudgeOnline/problem.php?id=1997表达式树的应用。本题可以使用中缀表达式转后缀表达式,然后枚举求解。也可以直接构建表达式树进行枚举求解。关键是寻找最后计算的运算符,然后递归建立表达式树。具体做法参考刘汝佳《算法竞赛入门经典》198页。另外练习:next_permutation()原创 2013-04-02 19:43:33 · 847 阅读 · 0 评论 -
Hoj 1452 Tree Recovery
题目链接:http://acm.hit.edu.cn/hoj/problem/view?id=1452题意:已知中序表达式和先序表达式求后序表达式。我们知道先序、中序、后序、层序这四种遍历方式中,只要有中序和其他任意一种顺序,即可构建这个二叉树。并且求得其他的顺序。方法一:一步到位#include #include #include #include #include原创 2013-04-02 21:44:28 · 824 阅读 · 0 评论 -
Hoj 1833 Truck History
最小生成树 Prim。题目:http://acm.hit.edu.cn/hoj/problem/view?id=1833#include #include #include #include #include #include using namespace std;int map[2002][2002];int dist[2002];int visited[2002原创 2013-02-14 21:08:25 · 415 阅读 · 0 评论 -
Poj 2387 Til the Cows Come Home
求单源最短路,没有负边,用Dijkstra。题目:http://poj.org/problem?id=2387此题要注意最大INF的初始化问题,如果使用0x7f7f7f7f来初始化,很容易越界,造成WA。所以用0x3f3f3f3f比较妥当。#include #include #include #include #include #include using namespa原创 2013-02-15 11:51:38 · 496 阅读 · 0 评论 -
Hoj 1632 Jungle Roads
最小生成树。算法:Prim。题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1632#include #include #include #include #include #include using namespace std;int map[28][28];int dist[28];int visited原创 2013-02-11 21:43:20 · 499 阅读 · 0 评论 -
Hoj 1751 Tangled in Cables
最小生成树。Prim。题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1751练习一下Map使用。#include #include #include #include #include #include #include using namespace std;double ma[1000][1000];double原创 2013-02-11 23:11:56 · 451 阅读 · 0 评论 -
Poj 1125 Stockbroker Grapevine
写一发Floyed。处理多源最短路径问题。题目连接:http://poj.org/problem?id=1125Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题。Floyd-Warshall算法的时间复杂度为O(N3),空间复杂度为O(N2)。Floyd-Wa原创 2013-02-15 16:57:13 · 813 阅读 · 0 评论 -
Hoj 1948 回家
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1948这题怎么说呢,题目出的挺好的,Dijkstra。既有边权又有点权。加一维处理点权。但是仍有不少疑问,我提交了有20次了吧。都刷屏了。快。各种试。。有两个地方至今仍不理解。1.关于mapp对角线初始化为0 的问题,难道不需要初始化为0么?初始化为0反而A不掉。2.起点和终点不可以交换顺序原创 2013-02-16 17:59:23 · 563 阅读 · 2 评论 -
Hoj 2047 106 miles to Chicago
Dijkstra.只不过是把原先的普遍的最短单源路径当作最大单源路径来求。且运算符是乘法而不是加法。用Double来存储,细节部分需要雕琢一下再提交。题目:http://acm.hit.edu.cn/hoj/problem/view?id=2047#include #include #include #include #include #include using n原创 2013-02-16 22:37:46 · 606 阅读 · 0 评论 -
Hoj 1436 MPI Maelstrom
题目:http://acm.hit.edu.cn/hoj/problem/view?id=1436本题是单源最短路径的应用。由于比赛时时间紧迫,写Floyed较快。#include#include#includeusing namespace std;int dist[102][102];char temp[50];int main(){#ifndef ONLIN原创 2013-03-05 18:47:48 · 679 阅读 · 0 评论 -
Hoj 1811 Freckles
最小生成树。Prim。题目连接:http://acm.hit.edu.cn/hoj/problem/view?id=1811对于Double min的初始化,0x7f起不到预期的效果.赋一个相对大的数即可-10000#include #include #include #include #include #include using namespace std;d原创 2013-02-14 19:44:18 · 434 阅读 · 0 评论 -
NYOJ 35 表达式求值
题目:http://acm.nyist.net/JudgeOnline/problem.php?pid=35本题是求算数表达式的值。操作数是大于等于的实数,操作符有 + ,- ,*,/,()只要开两个栈,一个记录操作符,一个记录后缀表达式。即:把原始的中缀表达式转换成后缀表达式(逆波兰式),然后进行计算。前缀和后缀表示法有三项公共特征:操作数的顺序与等价的中缀表达式中操作数的顺原创 2013-03-22 14:54:55 · 939 阅读 · 0 评论 -
LA 4255 Guess
题目链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2256题意:给定一串数字a1,a2....an,给出sij的正负数值。sij代表ai+...aj的大小。求一组结果满足此条件。-10思路:设:Bi = a1+ a2 +原创 2013-10-12 17:31:05 · 3876 阅读 · 0 评论