U23029.压缩旅行计划
普及/提高-
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
小明来到了一个全新的国度,他决定在这个国度中进行旅行。这个国家有 n 个城市,有 m 条双向道路相连,小明选出了 t 个城市要去旅行,其中第 i 个城市编号为 ai(i∈[1,n])。但是,小明是一个强迫症,他认为,旅行的城市编号应该呈现不下降的趋势。换句话说,a1≤a2≤⋯≤at。但是,小明的计划有所变更,他希望减少一些城市旅行,使效率更高。当然,小明不能跳过起点和终点,且如果小明想要从 i 号城市跳到 j 号城市,则必须保证 i∈a,j∈a。注意,小明必须按照旅行计划的顺序游览参观,除非有些城市可以跳过。小明想知道,自己最少还需要旅游多少个城市。
输入格式
输入第一行是三个正整数 n,m,t,分别表示城市数量,道路数量,和旅行城市数量。
第二行是 t 个正整数,表示小明的旅行路线,其中路线 a 保持单调不下降。同时,相邻的两个旅游城市之间有着一条道路。
接下来还有 m−t+1 行,每行两个正整数 u,v ,表示城市 u 与城市 v 之间有一条道路。
输出格式
只有一个正整数,表示小明最终旅行的城市的数量。
输入输出样例
输入#1
6 8 5 1 2 3 5 6 2 4 4 2 2 2 2 5
输出#1
4
说明/提示
样例解释
对于样例 1,小明要游览 5 个城市,的计划如下:
1−>2−>3−>5−>6
实际上,小明通过 2−>5 的道路把路径压缩成了 4 个城市:
1−>2−>5−>6
所以输出为 4。
说明提示
注意,a 并不是 [1,n] 的集合,而是其中的 t 个元素所组成的有序数组。
数据范围
对于 20% 的数据,2≤n≤10。
对于 50% 的数据,2≤n≤1000。
对于 100% 的数据,1≤t≤n≤105,1≤k<n≤m≤106,1≤ai≤n。
输入数据中剩下的 m−k+1 条道路可能自己连向自己,或者与任何道路重复。