CF2068E.Porto Vs. Benfica
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
FC Porto 和 SL Benfica 是葡萄牙最大的两个足球俱乐部。当两队比赛时,大量球迷会从全国各地前往观赛,其中包括计划从里斯本前往波尔图的 Benfica 球迷俱乐部。为避免与 Porto 球迷俱乐部发生冲突,警方希望尽可能延迟他们的到达时间。
葡萄牙的公路网可建模为一个简单、无向、无权、连通的图,包含 n 个顶点和 m 条边。顶点代表城镇,边代表道路。顶点 1 对应里斯本(球迷的起点),顶点 n 对应波尔图(球迷的目的地)。球迷俱乐部希望最小化前往波尔图所经过的道路数量。
警方始终密切追踪球迷的位置。为延迟其到达,警方可在任意时刻封锁一条道路(前提是球迷当前不在该道路上通行)。此操作只能执行一次,且被封锁的道路将永久不可用。封锁后,球迷会立即得知该信息并调整路线。同时球迷知晓警方会封锁某条道路,并据此规划路线。
假设双方均采取最优策略,求球迷从里斯本到波尔图所需经过的最少道路数量。若警方能永久阻止球迷到达波尔图,则输出 −1。
输入格式
第一行包含两个整数 n 和 m(2≤n≤200000,n−1≤m≤min{n(n−1)/2,200000})——城镇数量和道路数量。
接下来 m 行每行包含两个整数 si 和 ti(1≤si,ti≤n)——表示第 i 条道路连接的两个城镇。
保证公路网连通,每条道路连接两个不同城镇,且无重复道路。
输出格式
输出球迷俱乐部从里斯本到波尔图所需经过的最少道路数量。
输入输出样例
输入#1
5 5 1 2 1 3 2 5 3 4 4 5
输出#1
5
输入#2
11 12 1 2 2 3 3 4 4 5 5 11 3 6 6 7 7 11 1 8 8 9 9 10 10 11
输出#2
9
输入#3
8 10 1 2 2 3 3 4 3 8 4 8 1 5 5 6 6 7 6 8 7 8
输出#3
5
说明/提示
第一个样例的公路网结构如下:

警方最优策略是等待球迷到达与目的地相邻的顶点(如顶点 5)后封锁该顶点到目的地的边。球迷最优策略是先沿上方路径(1→2),在发现 2 到 5 的边被封锁后,返回 2→1 并沿下方路径(1→3→4→5)。此时经过的道路总数为 5。
第二个样例的公路网结构如下:

存在多种策略,但最优方案为:球迷沿上方路径(1→2→3→4→5),警方封锁边 5→11,球迷绕行 5→4→3→6→7→11。总经过道路数为 9。
第三个样例的公路网结构如下:

警方最优策略为:若球迷到达顶点 2 则封锁边 2→3,若到达顶点 5 则封锁边 5→6。球迷最优路径为 1→2→1→5→6→8,总经过道路数为 5。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?