
Floyd
芋智波佐助
菜鸟一只
展开
-
UVa 10985 Rings'n'Ropes floyd+BFS
n个戒指 和m跳长度为1 的绳子求左右收拿住2个戒指 最多几条绳子被拉直拿住哪2个不知道 所以两两枚举对于2个戒指之间 可以考虑最短路 然后可能有很多条最短路 在路径统计下就行看懂样例怎么出来的就知道怎么回事了#include #include #include #include using namespace std;const int MAX = 130;int原创 2013-12-16 13:42:42 · 1107 阅读 · 0 评论 -
URAL1004 Sightseeing Trip Floyd 最小环
const int maxn=110; int dist[maxn][maxn], map[maxn][maxn]; //最短距离,原图int pre[maxn][maxn]; // pre[i,j]记录最短路里,j前面一个点int path[maxn]; // 答案路径int n, m, num, minc; // num记录path里有多少个点,minc是最短环长度原创 2016-07-27 09:09:11 · 396 阅读 · 0 评论 -
HDU 1317 XYZZY Bellman-Ford求最长路 判断正环
题意:给你n个房间 开始有能量值100 判断能否从1到第n个房间 每到一个房间可以获得能量x(可能小于0) 每到一个房间总能量必须大于0 每个房间可以重复到达思路:求一个从1到n的最长路 不过可能有正环 没有正环 直接求最长路 如果有正环 判断环中的点是否可以到达n具体用Bellman-Ford算法 虽然复杂度是(n*m)这题应该可以了 如果迭代n-1次之后还能松弛 说明有正环 然后原创 2014-04-04 18:50:48 · 1802 阅读 · 0 评论 -
POJ 3660 Cow Contest 传递闭包确定名次
题目来源:POJ 3660 Cow Contest题意:n头牛 下面m行 每行x y 代表牛x打败了牛y 问有几头牛的最终排名是确定的思路:传递闭包 如果x打败了y 令a[x][y]=1 并且a[y][x]=-1 其他不知道的都为0 然后floyd 最后对于每头牛数一下是否有n-1个1或者-1(就是不为0) 如果有n-1个不为0 说明该牛和其他牛都确定了状态#include #原创 2014-04-05 15:49:23 · 1131 阅读 · 0 评论 -
HDU 1599 find the mincost route 无向图最小环
题目来源:HDU 1599 find the mincost route题意:求最小的3点组成的环思路:floyd 参考http://blog.sina.com.cn/s/blog_476a25110100mag6.html http://www.cppblog.com/mythit/archive/2009/04/21/80579.aspx#include #include #i原创 2014-04-07 15:39:07 · 1038 阅读 · 0 评论 -
UVa 125 Numbering Paths / floyd
求i到j有多少条路径 回路输出-1 路径floyd处理 成环的话 判断是否 a[i][i]!= 0是的话在做一次floyd 改成-1#include #include #include using namespace std;int a[110][110];int n;void floyd(){ int i,j,k; for(k = 0; k <= n; k++) {原创 2013-12-06 14:10:17 · 966 阅读 · 0 评论 -
UVa 10801 Lift Hopping / floyd
乘电梯 求到目标层的最短时间 有n个电梯 换一个电梯乘需要额外60秒所以建图时每个电梯自己能到的层数先把时间算好 这是不需要60秒的然后做floyd时 如果松弛 肯定是要换电梯 所以要加60秒#include #include #include #include #include #include using namespace std;int a[110]原创 2013-12-18 20:09:54 · 985 阅读 · 0 评论 -
TOJ 2933 ZOJ 1589 Professor John / floyd
Professor John时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte描述Professor John is investigating a math problem. He has obtained some relations among several variables. Now he would like t原创 2013-11-13 18:15:11 · 1485 阅读 · 0 评论 -
UVa 10048 Audiophobia / floyd变形
给你q个询问 使1条路中最大边尽量小 最大最小化 floyd变形 存的是最大边值#include #include using namespace std;const int MAX = 110;const int INF = 999999999;int a[MAX][MAX];int n,m,q;void floyd(){ int i,j,k; for(k = 1; k原创 2013-11-29 19:50:54 · 1067 阅读 · 0 评论 -
HDU The Shortest Path 矩阵的最短路
题目来源:HDU The Shortest Path题意:如果A*B=C 那么A与C之间的距离为1 其中ABC为矩阵 下面q次询问 求2个矩阵之间的最短路思路:暴力 n的5次的复杂度 枚举2个矩阵 然后算出2个矩阵的乘积 再去找第三个矩阵 建图 然后floyd 1500ms左右 其中写成了函数调用也超时了#include #include using namespace std;原创 2014-04-06 23:48:19 · 1142 阅读 · 0 评论 -
HDU 3339 In Action 价值为最短路的背包
题目来源:HDU 3339 In Action题意:有一个系统要去破坏 该系统是有n个点组成的图 每个点有一个权值 可以从0排除任意个机器人 去占领一个点 每个机器只能占领一个地方 所有机器人占领点的权值之和大于所有点权值之和的一半(不能等于) 就算破环成功 求在破坏的情况下所有机器人走过的路径之和最小 思路:简而言之 就是选出若干个点 他们的和大于总数的一半 并且走的路最短原创 2014-04-06 00:00:11 · 1265 阅读 · 0 评论 -
UVa 11549 Calculator Conundrum / floyd判圈算法
可以用map 或者set 新学了一个floyd判圈算法就是比如2个赛跑 第二个比第一个速度快1倍 圆形跑道可以追上第一个人 这里就另k1做一次next k2做2次next 如果k1 == k2 就break 说明出现循环了代码是书上的原创 2014-01-23 18:15:14 · 1157 阅读 · 0 评论 -
UVa 208 Firetruck / dfs + floyd
给你一个无向图 和一个点 n 按字典序打印所有的从1到n路径 直接深搜 回溯 会TLE 剪个枝 先做一次floyd 如果途经 i点 判断从i 到 n是否可达 不可达就不用搜下去了#include #include #include #include using namespace std;int a[100][100];int b[100][100];int map[100];原创 2013-12-06 22:48:05 · 966 阅读 · 0 评论 -
BZOJ 1143 祭祀river 最长反链
http://vfleaking.blog.163.com/blog/static/1748076342012918105514527/大前提:在有向无环图中链是一个点的集合,这个集合中任意两个元素v、u,要么v能走到u,要么u能走到v。反链是一个点的集合,这个集合中任意两点谁也不能走到谁。最长反链是反链中最长的那个。那么最长反链怎么求呢?另一个东西叫:最小原创 2016-07-22 09:02:21 · 599 阅读 · 0 评论