重边权值居然可以不一样QωQ(当然可以不一样)
|
|
话说打错的程序还能得40分,其他的运行时出错。
这是什么鬼..... |
|
不会写Floyd只会写Dijs不用考虑重边
|
|
看评论想着处理n==1,写着写着就忘了。顺便,一开始还跪在“单文件多数据”的初始化上了。。
|
|
没看到重边。。。
题目 1254 最难的任务
2015-04-04 21:23:37
|
|
和长相一样,最朴实的才是最安全的……
|
|
懒得写什么spfa、邻接矩阵了,一个Floyd解决;但还是跪在n=1的情况上了、、
|
|
回复 @省选完挂,OI再见 : 贴代码很不美观啊
|
|
#include<cstdio>
#include<cstring> #include<iostream> using namespace std; #define N 205 int map[N][N]; int n, m; inline void floyd(){ for (int i = 1; i <= n; i ++) map[i][i] = 0; for (int k = 1; k <= n; k ++) for (int i = 1; i <= n; i ++){ if (i != k){ for (int j = 1; j <= n; j ++) if (j !=i && j != k){ map[i][j] = min(map[i][j], map[i][k] + map[k][j]); } } } } int main(){ freopen("hardest.in", "r", stdin); freopen("hardest.out", "w", stdout); int T; scanf("%d", &T); while (T --){ memset(map, 0x3f, sizeof(map)); scanf("%d %d", &n, &m); int x, y, z; for (int i = 1; i <= m; i ++){ scanf("%d %d %d", &x, &y, &z); map[x][y] = min(map[x][y], z); map[y][x] = min(map[x][y], z); } floyd(); if (map[1][n] != 0x3f3f3f3f) printf("%d\n", map[1][n]); else printf("-1\n"); } return 0; } |
|
floyd其实可以过,但实在是被重边给坑到了。
蒟蒻哭晕在机房。
题目 1254 最难的任务
2014-09-21 16:57:27
|
|
看了数据范围我甚至想用佛洛依德。。。。。。,但最后还是嫌麻烦用了深搜,居然有点快0.5s了,囧~
题目 1254 最难的任务
2012-11-08 21:50:17
|
|
为什么比赛的时候A了之后却没A,郁闷ing,一定是我打开的方式不对
题目 1254 最难的任务
2012-11-07 16:37:14
|
|
罪过,罪过。
|
|
邻接矩阵的话重边要判断
|
|
重边有关系么?没有预处理也A了阿
|
|
写之前考虑不管数据有没重边,还是处理下吧...写的时候就忘了0 0
题目 1254 最难的任务
2012-11-07 13:18:59
|
|
蛋疼的重边
题目 1254 最难的任务
2012-11-07 12:36:09
|