
图论
文章平均质量分 76
Green_G
这个作者很懒,什么都没留下…
展开
-
bzoj 1036 树的统计
题目链接:点击打开链接题目大意:有一棵树,30000个点,每个点有权值,接下来有20w个操作,分为三种,一是改变某个点的权值,二是询问从a到b的路径上的点的权值的最大值,三是询问a到b上点的权值和。一道裸的树链剖分+线段树:对于树上的路径问题,可以先进行轻重链划分,再用线段树解决。轻重链剖分和点的重标号可以用dfs也可以用bfs#include #include #原创 2015-03-14 09:24:53 · 311 阅读 · 0 评论 -
图论专题
1062* 昂贵的聘礼 枚举等级限制+dijkstra1087* A Plug for UNIX 2分匹配1094 Sorting It All Out floyd 或 拓扑1112* Team Them Up! 2分图染色+DP1125 Stockbroker Grapevine FLOYD1135 Domino Effect 最短路1149* P转载 2015-03-05 11:34:11 · 548 阅读 · 0 评论 -
HDU 3631 Shortest Path (Floyd的深层理解)
题目链接:点击打开链接题目大意:有一张有向图,300个点,然后有10^5次操作,操作有两种,一种是激活某一个点,另一种是询问两个点之间的最短路径,这条路径必须由被激活的点构成。显然任意两点之间的距离理想的是floyd。这题让我对floyd有了更深的理解,以前一直觉得floyd非常好写,但是对于其原理一知半解,在这个变形应用里就遇到了困难。我最开始非常原始的想法就是,如果floyd里原创 2015-03-08 22:31:02 · 372 阅读 · 0 评论 -
POJ 1062 昂贵的聘礼
题目链接:点击打开链接题目大意:一共有n种货物,如果想获取一种货物,每一个货物都有自己的等级为l,有两种方法,一是支付对应价值的金币,还有一种是支付另一种货物加上一定的金币。如果整个交易过程中有两种货物等级差大于m,交易就不合法。问要买第一种货物最少需要花多少金币。数据范围为n图论题,观察以后就可以发现,每一次用物品交易的时候,会有一部分的交易金是固定的。整个交易完成后,支付的金币为交原创 2015-03-07 20:21:11 · 280 阅读 · 0 评论 -
POJ 3259 Wormholes
题目链接:点击打开链接题目大意:一张图,判断是否有负环 spfa1Y#include #include #include #include using namespace std;#define N 1005typedef struct{ int v; int t;}node;vectorp[505];bool vis[505];int time[5原创 2015-03-07 20:52:48 · 271 阅读 · 0 评论 -
POJ 1860 Currency Exchange
题目链接:点击打开链接题目大意:货币之间的交易是按照两种货币的汇率进行,并且交易的时候需要支付一定的待交换货币作为手续费。问是否有办法使得最开始的钱有所增长。判断是否有负环。可以用spfa。如果有元素进队列次数超过n,说明存在负环。//#include #include #include #include #include using namespace std;#defi原创 2015-03-07 20:44:35 · 238 阅读 · 0 评论 -
POJ 2253 Frogger
题目链接:点击打开链接题目大意:一张图,给出起点和终点,求出从起点到终点的一条路径上的最大长度的最小值为多少。spfa可以解,只要把维护最短路径改成维护路径上最大长度的最小值即可原理是,实际上dijk,spfa,floyd这些最短路算法都是在寻找一条路径,所以只要修改对路径的判断条件,就可以找到所需的路径。个人认为这些问题的共同点在于,他们对于路口的走向判断是明确的。#includ原创 2015-03-09 13:21:04 · 257 阅读 · 0 评论 -
POJ 1125 Stockbroker Grapevine
题目链接:点击打开链接题目大意:一张有向图,100个点,从哪个点开始出发,到达其他点的最大距离最小。方法就是floyd处理出两点间距离,然后再枚举出答案。#include #include #include #include #include using namespace std;#define INF 0x3f3f3f3fint dis[105][105];i原创 2015-03-09 13:40:43 · 195 阅读 · 0 评论 -
CF 21D Traveling Graph
CF 21D Traveling Graph题目大意:一张无向图有n个点(n≤15n\leq15 ),m条边(m≤2000m\leq2000),存在重边和自环,求最小的回路从1出发能够通过所有的边至少一次。题解: 如果这张图是一张欧拉图的话,那么存在一条欧拉回路通过所有的边一次,一定是最小的回路。如果不是欧拉图的话,那么可以通过补一些边使得它成为一张欧拉图。首先floyd处理出两点之间的最短距离,原创 2016-10-16 21:00:13 · 358 阅读 · 0 评论