题目名称 1254. 最难的任务
输入输出 hardest.in/out
难度等级
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 5
题目来源 Gravatarcqw 于2012-11-07加入
开放分组 全部用户
提交状态
分类标签
最短路
分享题解
通过:111, 提交:303, 通过率:36.63%
GravatarTiny 100 0.027 s 100.54 MiB C++
Gravatar┭┮﹏┭┮ 100 0.039 s 4.83 MiB C++
GravatarBokjan 100 0.051 s 0.31 MiB C++
Gravatar可以的. 100 0.053 s 0.55 MiB C++
Gravatar小e 100 0.056 s 2.63 MiB C++
GravatarWxjianF019 100 0.058 s 13.67 MiB C++
GravatarWxjianF019 100 0.060 s 13.67 MiB C++
GravatarNARUTO 100 0.062 s 0.47 MiB C++
Gravataras 100 0.062 s 39.20 MiB C
Gravatarzjmfrank2012 100 0.063 s 0.46 MiB C++
本题关联比赛
20121107
20121107
20150714B
关于 最难的任务 的近10条评论(全部评论)
重边权值居然可以不一样QωQ(当然可以不一样)
GravatarWxjianF019
2019-08-11 15:49 17楼
话说打错的程序还能得40分,其他的运行时出错。
这是什么鬼.....
Gravatarfate1
2017-07-02 12:06 16楼
不会写Floyd只会写Dijs不用考虑重边
GravatarHzoi_Go灬Fire
2016-10-24 07:33 15楼
看评论想着处理n==1,写着写着就忘了。顺便,一开始还跪在“单文件多数据”的初始化上了。。
Gravatarliu_runda
2016-01-25 14:31 14楼
没看到重边。。。
Gravatar一個人的雨
2015-04-04 21:23 13楼
和长相一样,最朴实的才是最安全的……
Gravatar水中音
2014-10-08 19:36 12楼
懒得写什么spfa、邻接矩阵了,一个Floyd解决;但还是跪在n=1的情况上了、、
Gravatar乌龙猹
2014-10-08 18:39 11楼
回复 @省选完挂,OI再见 : 贴代码很不美观啊
GravatarHouJikan
2014-10-01 12:14 10楼
#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;
}
GravatarOI永别
2014-10-01 07:32 9楼
floyd其实可以过,但实在是被重边给坑到了。
蒟蒻哭晕在机房。
GravatarEzio
2014-09-21 16:57 8楼

1254. 最难的任务

★   输入文件:hardest.in   输出文件:hardest.out   简单对比
时间限制:1 s   内存限制:128 MiB

【题目描述】

这个真的很难。算出 12345678987654321!,这个“!”是阶乘的意思。

呵,我在开玩笑。没有人成功的解决。

事实上,你是一个间谍。你要窃取一些敌军机密,现在你需要找到一个方法使你逃走的时间最少。

这里有很多交叉点和很多道路,在两个交叉点间可能有多条路。你很困惑,但随身携带笔记本电脑让你很快乐。

【输入格式】

第一行有一个整数T(T≤10)表示测试数据个数。

每组数据以两个整数开始,n和m(1≤n≤200,0≤m≤10000),交叉点的个数和各自的道路数。下面m行有三个整数 i,j,k(i<>j, 1≤k≤10000), 意思是i和j中间有一条长度为k的路。

你可以假设交叉点的编号为1...n。你需要从交叉点1到交叉点n。

道路是双向的。

【输出格式】

对于每组测试数据,打印最短距离。如果没有路可以出去,打印-1。

【样例输入】

1
2 1
1 2 3

【样例输出】

3