图论
文章平均质量分 80
zoro_n
我想走得更远
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
poj 2377 Bad Cowtractors
DescriptionBessie has been hired to build a cheap internet network among Farmer John's N (2 <= N <= 1,000) barns that are conveniently numbered 1..N. FJ has already done some surveying, and found原创 2016-07-30 16:14:33 · 409 阅读 · 0 评论 -
poj 2502 Subway 【spfa】
点击打开链接给你n条地铁。问你从起点到终点最小耗时。地铁40km/h 步行10km/h 题解: 只有最多只有200个车站,所以只要是最短路的算法,都能写。就是处理边比较烦人,因为之前忘记考虑不相邻车站的步行距离导致一直wa。#include#include#include#include#include#include原创 2017-04-13 01:16:59 · 282 阅读 · 0 评论 -
最小生成树(MST)的性质及算法 [转】
转自:chensohg的博客http://blog.sina.com.cn/u/1182060252最小生成树性质1:设G=(V,E)是一个连通网络,U是顶点集V的一个真子集。若(u,v)是G中所有的一个端点在U(u∈U)里、另一个端点不在U(即v∈V-U)里的边中,具有最小权值的一条边,则一定存在G的一棵最小生成树包括此边(u,v)。证明:为方便说明,转载 2017-04-17 18:03:39 · 3598 阅读 · 0 评论 -
HDU 2544 最短路
点击打开链接模板spfa#include #include #include #include #include using namespace std;const int inf=0xffffff;const int maxn=111;int n,m,cnt;int dis[maxn];int head[maxn];int vis[m原创 2017-04-05 10:51:17 · 208 阅读 · 0 评论 -
POJ 2253 Frogger
点击打开链接题意:有n个两个青蛙想见面,两个青蛙之间有n个石头,他必须一个一个跳过去。找到他女朋友。问你他能找到他女朋友的情况下,最少的跳跃极限距离是多少。题解: 建个图,跑一边spfa,就行了。卧槽,我错的好惨啊,竟然是 因为我输出的是lf改成f就过了。!!!!double f;G++原创 2017-04-05 23:02:31 · 389 阅读 · 0 评论 -
nsoj 4654 一笔画问题
题目描述zyc从小就比较喜欢玩一些小游戏,其中就包括画一笔画,他想请你帮他写一个程序,判断一个图是否能够用一笔画下来。规定,所有的边都只能画一次,不能重复画。 输入第一行只有一个正整数N(N每组测试数据的第一行有两个正整数P,Q(P随后的Q行,每行有两个正整数A,B(0<A,B<P),表示编号为A和B的两点之间有连线。输出如果原创 2016-09-22 11:21:03 · 409 阅读 · 0 评论 -
CodeForces - 173B Chamber of Secrets
点击打开链接题意:给你个n*m的地图, a[n][m]是蛇起始是向左看的。a[1][1]是入口,起始是向右看的。 ‘#’是能让穿过的目光发散成四个方向。题解: 利用二分图的原理,把每个‘#’建成图。然后跑一边最短路。最后跑了300左右, 大佬们都是30.。。。。#include #include #include #include原创 2017-04-06 10:29:58 · 599 阅读 · 0 评论 -
NYOJ 247 虚拟的城市之旅
点击打开链接虚拟的城市之旅时间限制:3000 ms | 内存限制:65535 KB难度:6描述展馆是未来城市的缩影,个人体验和互动是不变的主题。在A国展馆通过多维模式和高科技手段,引领参观者在展示空间踏上一段虚拟的城市之旅。梦幻国有N个城市和M条道路,每条道路连接某两个城市。任意两个城市之间最多只有一条道路直接相连。这原创 2017-04-15 00:50:11 · 360 阅读 · 0 评论 -
CodeForces 301B Yaroslav and Time
题意: 给你n个城市。问你从1到n 最短花费。 除了起点和终点,每个城市都能减少ai 的花费。任意两点距离为 两点的哈曼顿距离*d;题解: 跑一发最短路,我用的spfa,后来发现,不能用标记数组,这样复杂度就高了。还不如直接floyd 省事。复杂度都一样。 #includeusing namespace std;const int inf=0xff原创 2017-04-15 16:55:24 · 318 阅读 · 0 评论 -
51nod 1640 天气晴朗的魔法【最小生成树概念】
好久没刷提了, 晚上没事写两道学弟的训练题练下手。题目链接点击打开链接51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关键。每一条魔法链都有一个魔力值V,魔法最终的效果取决于阵中所有魔法链的魔力值的和。原创 2017-05-11 17:21:09 · 307 阅读 · 0 评论 -
woj 656. Wifi Relay 【prim 大稠密图】
点击打开链接题意: 给你10000个点。问你联通这一万个点的所有边权中极大值最小为多少。题解: 最小生成树的最大边权就是解。 但是这图太稠密了,存不下所以直接用prim 把图存成 O(n)。 还有就是输出的话,只能用cout 输出。 printf 输出精度不够,,,,可能是我不会吧。 #include#define ll long原创 2017-05-12 00:21:03 · 308 阅读 · 0 评论 -
hautoj 1262 魔法宝石【最短路】
点击打开链接时间限制: 2 秒 内存限制: 64 MB提交: 510 解决: 150提交 状态 题目描述小s想要创造n种魔法宝石。小s可以用ai的魔力值创造一棵第i种魔法宝石,或是使用两个宝石合成另一种宝石(不消耗魔力值)。请你帮小s算出合成某种宝石的所需的最小花费。输入第一行为数据组数T(1≤T≤3)。对于每组数据,首先一行为n,m原创 2017-04-26 20:30:53 · 493 阅读 · 0 评论 -
51nod 1459 迷宫游戏
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了你的起点和终点房间,你首要目标是从起点尽快到达终点,在满足首原创 2017-05-27 22:52:59 · 317 阅读 · 0 评论 -
玲珑杯 1126 - 咸鱼旅行 【keuskal】
点击打开链接Time Limit:3s Memory Limit:128MByteSubmissions:573Solved:105DESCRIPTION这个地区可以看作是一个无向图,N个点M条边组成。每个边有一个边权。我们定义一条路径的花费,就是这条路径上最大的边权。现在有一条咸鱼,想从S走到T,徒步旅行。咸鱼于原创 2017-06-04 18:20:41 · 390 阅读 · 0 评论 -
cf 825E Minimal Labels 【拓扑】
点击打开链接题意:给你n个点,m条边。 n个点序列本身是1-n的升序 1.2.3..... 让你满足一下两个条件后输出新的序列, 1、新的序列还是1-n的数字组成。 2、如果存在一条边u->v, 那么u的标签小于v的标签。题解: 拓扑排序原创 2017-07-20 10:55:30 · 423 阅读 · 0 评论 -
POJ 1556 The Doors【单源最短+线段相交】
点击打开链接题意:给你一个10*10的方格, 然后在里面放不超过十堵墙。然后问你从 (0,5)->(10,5)的最短路。题解:最短路,但是建图非常恶心,需要判断线段之间是否相交。不相交才能建边。判断两线段是否相交。模板double mult(Point a, Point b, Point c) { return (a.x-原创 2017-04-13 14:21:40 · 340 阅读 · 0 评论 -
HDU 3371 Connect the Cities 【kruskal】
点击打开链接题意: 给你n个城市让你花最小代价连起来,但是给你了几个已经连好的城市。我上来怼了一发prim 超时,我就想,kruskal 应该可以,最后没时间敲,,,gg直接kruskal 模板就能过。#include #include #include #include #include using namespace std;c原创 2017-04-03 19:20:05 · 256 阅读 · 0 评论 -
poj 3259 Wormholes【spfa判负环】
点击打开链接题意: 给你个地图,很多条双向的路走着费时间, 然还有单向的虫洞返回时间,问你能不能到达某个点时候时间比之前到达这个点时候之前,从而遇见之前的自己,达到时光旅行。题解: 跑spfa 判断 负环就行。。 我现场竟然拿着floyd 狂怼几发, 都te 不过最后硬是floyd 怼过了。floyd:#include#include原创 2017-04-03 16:43:43 · 317 阅读 · 0 评论 -
POJ 3268 Silver Cow Party 【单项图,双向spfa】
点击打开链接题意:给你一个单项图。然后问你从一个点出发,到其他所有点再回来,花费的最长时间是哪一次。题解: spfa,或者 DJ 都可以 单元最短路,因为图是单向的,那么a->b 求一遍之后, 地图换个方向, 再来一遍a->b 。之和就是来回。两次单源最短路。就解决了 2*n^2, 之前看了一眼,直接想暴力一发floyd。 觉得这个最好用,结果原创 2017-04-02 10:42:10 · 303 阅读 · 0 评论 -
Aizu 0189 Convenient Location
Convenient Location来春卒業するAさんは,就職を機に引越しをすることにしました。就職する会社は,オフィスがい くつかの町にあって、日によって出勤するオフィスが違います。そこでAさんは,どこのオフィスに 行くにも時間の短い町に住もうと考えました。そこであなたは、Aさんを助けるため、住むのに一番便利な町を探すことになりました。町には0から始まる番号が振原创 2016-08-01 10:49:16 · 290 阅读 · 0 评论 -
poj 3268 Silver Cow Party
DescriptionOne cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X ≤ N). A total of M (1 ≤ M ≤ 100,000) unidirectio原创 2016-08-01 21:38:21 · 356 阅读 · 0 评论 -
zzuli 1990 985的“树”难题
Description985给你一棵“树”以及它的根节点,要求你先判定它是否是一棵树,其次他想知道每个节点的“太子”数目以及它的父亲(root的话输出自己)。“太子判定条件”:一、若x是y的孩子节点,那么x是y的“太子”;二、若x是y的“太子”且y是z的“太子”,那么x是z的“太子”。Input第一行输入一个整数t,代表有t组测试数据。每组数据第一行输入原创 2016-08-30 13:25:30 · 688 阅读 · 0 评论 -
zzuli 1907 小火山的宝藏收益
Description 进去宝藏后, 小火山发现宝藏有N个房间,且这n个房间通过N-1道门联通。 每一个房间都有一个价值为Ai的宝藏, 但是每一个房间也都存在一个机关。如果小火山取走了这个房间的宝藏,那么这个房间通往其他房间的门就永远打不开了,也就是说后面的宝藏小火山是得不到了(进入这个房间的门是不会关闭的,小火山还是可以回去的);如果小火山不取这个宝藏,而是去打开通往另一原创 2016-09-01 17:31:01 · 345 阅读 · 0 评论 -
zzuli 1918 G
Description晴天也来寻宝啦,有一个m层的宝塔,只能从第一层开始一层一层的往上走,每层都有一个门,你需要用钥匙来打开门才能继续走,现在晴天有n把钥匙,编号为0-n-1,然后他要开始寻宝了。没有特殊技能怎么好意思出来寻宝呢,他现在有两个天赋技能,他知道第i层的门可以用编号为a和b的钥匙打开(可能a等于b呦),然后他还可以在进入宝塔前把门的顺序任意调换一次,也就是说比如可以把m层原来的原创 2016-09-07 10:36:26 · 303 阅读 · 0 评论 -
poj 1659 Frogs' Neighborhood
Description未名湖附近共有N个大小湖泊L1, L2, ..., Ln(其中包括未名湖),每个湖泊Li里住着一只青蛙Fi(1 ≤ i ≤ N)。如果湖泊Li和Lj之间有水路相连,则青蛙Fi和Fj互称为邻居。现在已知每只青蛙的邻居数目x1, x2, ..., xn,请你给出每两个湖泊之间的相连关系。Input第一行是测试数据的组数T(0 ≤ T ≤ 20)。每组数原创 2016-09-29 11:40:51 · 256 阅读 · 0 评论 -
zstuoj 4248 KI的目标
点击打开题目题意:建立一棵树,每个节点有对应的价值,和花费。价值小于等于话费,才合理,否则删掉。问这棵树最后有多少节点。题意:用邻接表,然后用深搜从根节点1 往下遍历。如果sum#include#define ll long longusing namespace std;const int maxn=100000+100;struct原创 2016-11-27 13:14:07 · 266 阅读 · 0 评论 -
cf 500B New Year Permutation 【并查集】or【floyd】
点击打开链接题意:给你一个数列,然后给你每个数之间的交换关系,问能够交换成的最漂亮的数列是什么。越小越漂亮1,2,3,4,5。。。n 最漂亮 n,n-1,n-1........3.2.1 最丑。题解: 用并查集,吧能互相交换的点会绑起来,然后排序,挨个逐一放置即为最优解。#include #include #include原创 2017-02-26 20:48:57 · 261 阅读 · 0 评论 -
hdu 1385 Minimum Transport Cost【floyd】
点击打开链接floyd 。现场写的死活过不去,后来看了看题解,和我的的还是有区别。区别在,他正着记录路径。我逆着记录路径。。结果我就错了/!!!!! 我擦简直了,我这样记录应该是没问题的呀。思路: 就是跑一边floyd 更新的时候考虑如过到达一点其他路径如果前驱字典序小,就换。然后 打印路径就好。ac代码:#includeusi原创 2017-03-28 23:43:16 · 268 阅读 · 0 评论 -
POJ - 2421 Constructing Roads【最小生成树】
题意:给你n个城市,然后给出每个城市的距离。再给你说已经有哪些城市已经连起来了。剩下问你联通的最小修路代价是多少。题解:最小生成树。把连好的城市距离改成0就行了。直接模板。#include#include#include#define ll long longusing namespace std;const int maxn= 11原创 2017-03-29 22:50:02 · 356 阅读 · 0 评论 -
HDU - 2923 Einbahnstrasse 【floyd】
点击打开链接题意(此题最难部分!): 给你呢个城市,给你c辆坏车,给你坏车的城市,然后给你路径。求最短费时,一次只能拖一辆。题解: floyd 跑一遍,只要是读入可能看着很烦人。注意有重边竟然把sum,c,ca,x,y定 义成 char 答案还对。wa到爆炸。 #include#includeusing names原创 2017-03-30 10:35:12 · 289 阅读 · 0 评论 -
HDU 1285 确定比赛名次【拓扑】
点击打开链接题解:裸的拓扑排序,但是要求最小序。那把队列换成优先队列即可。#include#include#include#include#include#includeusing namespace std;const int maxn=555;int n,m,x,y,cnt;int indegree[maxn],head[max原创 2017-03-29 12:32:25 · 260 阅读 · 0 评论 -
HDU 4460 Friend Chains 【bfs】【spfa】
点击打开链接题意,求两两朋友之间的最短路中的最大值。我一直理解错题意,能写过才奇怪了!!!!,题解:用bfs 把每个能走的朋友都走一遍,然后记录最远的距离。 最后求最大值。#include#include#include#include#include#include#include#includeusing namespace st原创 2017-04-01 11:07:36 · 366 阅读 · 0 评论 -
HDU 1301 Jungle Roads【最小生成树,prim】
点击打开链接题意: 给你n的城市,然后给你城市间的距离,让你花最小的代价,连通。题解: 最小生成树 ,快结束才A 的,刚开始我看着题,坑爹的图片没显示,我就没看懂。最后突然看见好多人过了。。赶紧看看,发现了图。。。。还有一点,就是敲prim ,里面的括号扩错地方,,,,,,让我郁闷半天,,,#include#include#includeu原创 2017-04-01 23:14:24 · 266 阅读 · 0 评论 -
HDU 2112 HDU Today【spfa】
点击打开链接题解: 单源最短路 跑spfa ,模板题。#include#include#include#include#include#include#includeusing namespace std;const int maxn=221;const int maxm=20210;const int inf = 0xffffff;int原创 2017-04-01 23:20:31 · 224 阅读 · 0 评论 -
cf 832D Misha, Grisha and Underground 【lca+倍增】
点击打开链接题意: 给你一个树,再给你三个点,然后问你任意两个点到另外一个点中间经过的相同的节点最大个数。题解: 照题解上面,求出任意两个点的公共祖先,保留深度最大的那一个。该点即为三个点的交汇点。 然后求出交汇点到三点的最大距离即为答案。下面附上官方题解:原创 2017-07-27 11:50:57 · 692 阅读 · 0 评论
分享