题目名称 866. 三元限制最短路
输入输出 patha.in/out
难度等级 ★☆
时间限制 1000 ms (1 s)
内存限制 128 MiB
测试数据 10
题目来源 常庆卫 于2012-07-09加入修改该题
开放分组 全部用户
提交状态
分类标签
搜索法
分享题解
通过:11, 提交:19, 通过率:57.89%
彭自涵 100 0.088 s 0.35 MiB C++
许海涛 100 0.091 s 68.86 MiB Pascal
野 100 0.104 s 30.13 MiB C++
崔州平 100 0.119 s 72.67 MiB Pascal
赵雪莹 100 0.283 s 73.72 MiB Pascal
祝一帆 100 0.415 s 48.43 MiB C++
陈昊喆 100 0.425 s 111.01 MiB C++
付皓 100 0.699 s 123.22 MiB Pascal
d 100 0.857 s 77.89 MiB C++
黄旷 100 0.931 s 124.73 MiB Pascal
本题关联比赛
20120710
关于 三元限制最短路 的近10条评论(全部评论)

866. 三元限制最短路

★☆   输入文件:patha.in   输出文件:patha.out   评测插件
时间限制:1 s   内存限制:128 MiB

【题目描述】

给定一个包含 N 个点,M 条边的无向图,每条边的边权均为 1。 再给定 K 个三元组(A,B,C) ,表示从 A 点走到 B 点后不能往 C 点走。注意三元组是有序的,如可 以从 B 点走到 A 点再走到 C。 现在你要在 K 个三元组的限制下,找出 1 号点到 N 号点的最短路径,并输出任意一条合法路径,会有 spj (Special Judge) 检查你的输出。

【输人格式】

    输入文件第一行有三个数 N,M,K,意义如题目所述。 接下来 M 行每行两个数 A,B,表示 A,B 间有一条边。 再下面 K 行,每行三个数(A,B,C)描述一个三元组。

【输出格式】

输出文件共两行数,第一行一个数 S 表示最短路径长度。 第二行 S+1 个数,表示从 1 到 N 所经过的节点。

【输入样例】

4 4 2 

1 2

2 3

3 4 

1 3 

1 2 3 

1 3 4

【输出样例】

4

1 3 2 3 4

【数据规模】

对于 40%的数据满足 N≤10,M≤20,K≤5。 

对于 100%的数据满足 N≤3000,M≤20000,K≤100000。