随笔分类 -  图论

摘要:1 /* 2 题意:就是源点到终点有多条的路径,每一条路径中都有一段最大的距离! 3 求这些路径中最大距离的最小值! 4 5 Dijkstra, Floyd, spfa都是可以的!只不过是将松弛的条件变一下就行了! 6 7 想了一下,这道题用最小... 阅读全文
posted @ 2014-08-15 16:44 hjzqyx 阅读(318) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:有 n 个站点(编号1...n),每一个站点都有一个能量值,为了不让这些能量值连接起来,要用 3 坦克占领这个站点!已知站点的 之间的距离,每个坦克从0点出发到某一个站点,1 unit distance costs 1 unit oil! 4 最后占... 阅读全文
posted @ 2014-08-14 19:32 hjzqyx 阅读(331) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 这道题如果按照度为0的节点来判断的时候,将度为0的节点和其相连的节点(度数并减去1) 3 从图中去掉,如果度为0的节点的个数为0个但是图中的节点没有都去掉的 时候那么说明 4 出现了回路!用这种方法必须将重边去除掉! 5 6 所以推荐用dfs... 阅读全文
posted @ 2014-08-14 01:02 hjzqyx 阅读(711) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 char map[105][105]; 7 8 int dir[8][2]={0, 1, 1, 0, -1, 0, 0, -1, 1, 1, 1, -1, -... 阅读全文
posted @ 2014-08-13 23:43 hjzqyx 阅读(225) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 bfs搜索!要注意的是点与点的权值是不一样的哦! 3 空地到空地的步数是1, 空地到墙的步数是2(轰一炮+移过去) 4 所以用到优先队列进行对当前节点步数的更新! 5 */ 6 #include 7 #include 8 #include 9 #inc... 阅读全文
posted @ 2014-08-13 19:50 hjzqyx 阅读(244) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:给定一个连通的无向图G,至少要添加几条边,才能使其变为强连通图(指的是边强联通)。 3 思路:利用tarjan算法找出所有的双联通分量!然后根据low[]值的不同将双联通分量 4 进行缩点,最后图形会变成一棵树!也就是添加至少多少条边使一棵树变成强联通图! ... 阅读全文
posted @ 2014-08-13 11:12 hjzqyx 阅读(850) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:N个城市中每两个城市有多条路径连接,可是因为路径存在的天数是有限的!以为某条路经不存在了 3 导致N个城市不能连通了,那么村名们就会抗议!问一共会有多少次抗议! 4 5 思路:最小生成树....我们用最大边来建立树!只要有最大边将节点连接并保证... 阅读全文
posted @ 2014-08-12 09:47 hjzqyx 阅读(379) 评论(0) 推荐(0) 编辑
摘要:/* 思路:多源点,多会点的最短路径! 将最小号-1的节点但最源点,将最大号+1的点当作汇点! 将问题转变成从一个源点到一个汇点的最短路径的问题! 开始忘记初始化vector了,哇了好多次....坑爹啊*/#include#include#include#include#includ... 阅读全文
posted @ 2014-08-11 16:54 hjzqyx 阅读(1638) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 #define M 205 6 #define INF 0x3f3f3f3f 7 using namespace std; 8 9 int map[M][M];10 int d[M], vis[M];11... 阅读全文
posted @ 2014-08-11 14:04 hjzqyx 阅读(293) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 有N个企业,每个企业想要实现通信,要用线路来连接,线路的长度为abs(a-b)%1000; 3 如果企业a 链接到了企业b 那么b就是the center of the serving! 4 然后有两种操作: 5 E a : 输出企业a到serving... 阅读全文
posted @ 2014-08-10 11:14 hjzqyx 阅读(328) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:有N个城市, 每一个城市都有一个龙珠(编号与城市的编号相同),有两个操作 3 T A ,B 将标号为A龙珠所在城市的所有的龙珠移动到B龙珠所在城市中! 4 5 思路:并查集 (压缩路径的时候将龙珠移动的次数进行更新) 6 */ 7 #include... 阅读全文
posted @ 2014-08-10 00:24 hjzqyx 阅读(268) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:这些信息可能有三种情况,分别是"A > B","A = B","A 17 #include 18 #include 19 #include 20 using namespace std; 21 int f[10005]; 22 int rank[10005]; 2... 阅读全文
posted @ 2014-08-09 20:21 hjzqyx 阅读(286) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题目大意: 3 就是一幢大厦中有0~99的楼层, 然后有1~5个电梯!每个电梯有一定的上升或下降速度和楼层的停止的位置! 4 问从第0层楼到第k层最少经过多长时间到达! 5 6 思路:明显的Dijkstra ,在建图的时候u->v可能... 阅读全文
posted @ 2014-08-08 19:37 hjzqyx 阅读(365) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 The first line of each test case contains 1 8 #include 9 #include10 #include11 #include12 using namespace std;13 14 double x[800], y[800]... 阅读全文
posted @ 2014-08-08 15:12 hjzqyx 阅读(231) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题目大意: 3 从一个点到达另一个点有多条路径,求这多条路经中最大噪音值的最小值! 、 4 5 思路:最多有100个点,然后又是多次查询,想都不用想,Floyd算法走起! 6 */ 7 #include 8 #include 9 #includ... 阅读全文
posted @ 2014-08-08 00:51 hjzqyx 阅读(437) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 10034 - Freckles 3 克鲁斯克尔最小生成树!~ 4 */ 5 #include 6 #include 7 #include 8 #include 9 using namespace std;10 11 struct node{12 double x, y;13... 阅读全文
posted @ 2014-08-08 00:07 hjzqyx 阅读(218) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 一张有20个顶点的图上。 3 依次输入每个点与哪些点直接相连。 4 并且多次询问两点间,最短需要经过几条路才能从一点到达另一点。 5 6 bfs 水过 7 */ 8 #include 9 #include10 #include11 #include12 #include13 usi... 阅读全文
posted @ 2014-08-07 23:34 hjzqyx 阅读(310) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题意:打印欧拉回路! 3 思路:开始时不明白,dfs为什么是后序遍历? 4 因为欧拉回路本身是一条回路,那么我们在dfs时,可能存在提前找到回路,这条回路可能不是欧拉回路, 5 因为没有遍历完成所有的边!如果写成前序遍历的话,存储起来的路径就不是一条... 阅读全文
posted @ 2014-08-06 18:08 hjzqyx 阅读(413) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题目大意:有N个cows, M个关系 3 a->b 表示 a认为b popular;如果还有b->c, 那么就会有a->c 4 问最终有多少个cows被其他所有cows认为是popular! 5 6 思路:强连通分量中每两个节点都是可达的! 通过分... 阅读全文
posted @ 2014-08-06 17:04 hjzqyx 阅读(418) 评论(0) 推荐(0) 编辑
摘要:1 /* 2 题目大意:有两个不同的黑帮,开始的时候不清楚每个人是属于哪个的! 3 执行两个操作 4 A a, b回答a, b两个人是否在同一帮派,或者不确定 5 D a, b表示a, b两个人不在同一个帮派 6 7 思路:利用并查集将相同帮派的人合并到一起! 8 ... 阅读全文
posted @ 2014-08-05 16:26 hjzqyx 阅读(291) 评论(0) 推荐(0) 编辑