导航

随笔分类 -  最短路

摘要:/* 思前想后 还是决定坚持写博客吧... 题意: n个点,m个集合。每个集合里边的点是联通的且任意两点之间有一条dis[i]的边(每个集合一个dis[i]) 求同时从第1个点和第n个点出发的两个人相遇的最短时间,并输出相遇的地点,如果有多个按编号大小顺序输出。 输入: 测试数据 t n m 以下m行每行 dis[i] 该集合点的数量 ...每个点的标号 数据范围: n 2-1e5 所有集合... 阅读全文

posted @ 2016-08-31 21:10 tun~ 阅读(143) 评论(0) 推荐(0)

摘要:#include #define MAXN 100050 #define MAXM 900000 using namespace std; struct st { int id; long long dis; st(int a,long long b) { id=a; dis=b; } st(){}; }; stru... 阅读全文

posted @ 2016-05-09 22:52 tun~ 阅读(190) 评论(0) 推荐(0)

摘要:题意: k c m 分别代表挤奶机数量,牛数量,和挤奶机容量。 接下来(n=k+c)n*n的矩阵A,代表挤奶机或者牛的距离,如果对角线都为0,如果非对角线没有直接路相连也为0。 1 <= K <= 30 1 <= C <= 200 1 <= M <= 15 0<=Aij<=200 求:在机器不能过载 阅读全文

posted @ 2016-04-11 18:44 tun~ 阅读(211) 评论(0) 推荐(0)

摘要:好吧终于知道什么是“高大上”的差分约束了。嗷嗷题意:小朋友们分糖果,某个小朋友不想另外一个小朋友分到的糖果数比自己多N块以上。求编号为N的小朋友最多比编号为1的小朋友多分多少块糖果。思路:差分约束,用最短路做。这题用SPFA.查分约束的学习感谢博客:http://www.cnblogs.com/vo... 阅读全文

posted @ 2015-10-02 10:02 tun~ 阅读(144) 评论(0) 推荐(0)

摘要:题意:copy自http://blog.csdn.net/monkey_little/article/details/6637805有A个村子和B个城堡,村子标号是1~A,城堡标号是A+1~B。马里奥现在位于城堡B,他要带公主回到村子1,他有一双靴子,穿上之后可以不用时间就能从一个地方飞到另外一个地... 阅读全文

posted @ 2015-10-02 07:05 tun~ 阅读(242) 评论(0) 推荐(0)

摘要:题意:(这题明显感觉自己是英语渣)给n个点从1到n标号,下面一行是每个点的权,另外给出m条边,下面是每条边的信息,两个端点+权值,边是无向边。你的任务是选出一些边,使这个图变成一棵树。这棵树的花费是这样算的,1号固定为树根,树中每个双亲节点下面的边都有个单价(即边权),然后单价乘上这条边的下面所有的... 阅读全文

posted @ 2015-09-27 10:40 tun~ 阅读(167) 评论(0) 推荐(0)

摘要:题意:给出两个坐标,分别是小明家和小明学校的坐标。给出多条地铁线,给出每站的坐标,已知地铁是双向的,每条线以-1 -1结尾。给出地铁速度,步行速度。地铁线可看成是顺次连接的线段。求小明从家到学校用到的时间。思路:任何两点之间都可以连速度为步行的无向边,地铁相邻两站可以连速度为地铁速度的无向边。之后进... 阅读全文

posted @ 2015-09-27 09:24 tun~ 阅读(151) 评论(0) 推荐(0)

摘要:题意:给了n种硬币的名称,给了m种硬币间的转换关系。从任意兑换地点开始兑换,看是否能够通过兑换的方式增加金钱。思路:用SPFA不断对各个点进行松弛操作,寻找正权值的环。如果找到则输出Yes。这题测试的时候竟然发现dis数组写成int型...#include#include#include#inclu... 阅读全文

posted @ 2015-09-24 23:01 tun~ 阅读(151) 评论(0) 推荐(0)

摘要:题意:有n种钱币,m个钱币兑换点,小明一开始有第n种钱币数量为w。每个兑换点可以将两种不同的钱币相互兑换,但是兑换前要先收取一定的费用,然后按照比例兑换。问小明是否可以经过一系列的兑换之后能够将持有的第n种钱的数量增加。这题大概就是看是否存在权值为正的环。如果存在这样的环,那么可以一直循环,然后在适... 阅读全文

posted @ 2015-09-24 17:40 tun~ 阅读(166) 评论(0) 推荐(0)

摘要:题意:给一个无向图,找1到n所有的路中每条路最小权值的最大值!屌丝一开始的思想是利用dij的变形~但是==屌丝忘记了更新dis数组~结果TLE无数次...说正经的~dij的变形思想是这样的if(dis[now]#include#includeusing namespace std;int min(i... 阅读全文

posted @ 2015-09-22 19:43 tun~ 阅读(171) 评论(0) 推荐(0)

摘要:题意:给K个权值。给含有N个点,R条单向边的图。每条边都有两个权值,其中一个路长,另外一个是附加权值。要求路的附加权值之和不超过K的情况下求最短路。思路:自己的思路太狭隘,这题还是看了大牛的思路。利用优先队列,在附加权值不超限的前提下,把每个点通向的点都走,每次找出路长最短的点,如果找到第N个点则算... 阅读全文

posted @ 2015-09-20 19:25 tun~ 阅读(218) 评论(0) 推荐(1)

摘要:题意:给N,表示N个节点。给半个邻接矩阵,本身到本身的距离是0,边是双向的。当两个节点之间没有直接的边连接的时候,用x表示。问从第一个节点到其他所有节点至少花费的时间。这题唯一的处理是处理邻接矩阵的时候处理先当作字符串读入,然后处理一下数据,变成数据格式。最后是输出第一个节点到其他所有节点最短路的最... 阅读全文

posted @ 2015-09-19 21:13 tun~ 阅读(264) 评论(0) 推荐(0)

摘要:题意:有n个传递消息者,每个都有nn个亲信,他们可以把消息传递给他们的亲信,所 花时间为b。问把最初的消息传递给谁可以在最短的时间内把消息传递给所有人。思路:Floyd算出任意两点之间的最短路,然后取每行最大值最小的矩阵作为首先传递出消息的人,将最大值作为把消息传递给所有人最短的时间。#includ... 阅读全文

posted @ 2015-09-19 20:08 tun~ 阅读(150) 评论(0) 推荐(0)

摘要:中文题题意不写。建图:我自己想到的建图方式是把每个物品看作两个点,编号分别是i和i+n,然后每个物品两个点之间边的权值是物品本身的价值。然后从第i个点往外连边,目标是可替代品顶点编号较小的点,权值为替代之后的优惠费用,然后将可替代品的顶点编号较大的点连向第i+n个顶点,权值是0.这种建图方法将点的数... 阅读全文

posted @ 2015-09-19 11:36 tun~ 阅读(948) 评论(0) 推荐(0)

摘要:题意:t组样例。每组有n个节点,有m条单向边。有m组输入,每组a b c 表示从a到b的单向边的权值是c。求解,从编号为1的节点出发,有n-1个人,要求他们分别到达编号从2到n的节点再返回,所有边的权值的和最小是多少。思路:构图,构两个图,分别是正向图和反向图,然后用dij算单源最短路,将所有点到1... 阅读全文

posted @ 2015-08-22 10:08 tun~ 阅读(196) 评论(0) 推荐(0)