问题 4645 --3.总攻巴格达

4645: 3.总攻巴格达

题目描述

  据说伊拉克战争时期萨达姆曾在巴格达城区部下重防,你作为联军的指挥官,负责指挥联军以最小的代价攻克萨达姆的最后一道防线,巴格达的城区由n个街区和m条街道组成,每条街道连接两个街区i,j(i!=j),所有的街道都是双向的并且两个街区之间至多存在一条街道,每个街区至少有一条街道与之相连,为了尽可能的减少伤亡,你必须将你的部队进行如下方式的部署:

1.你可以占领街区i,当且仅当与i相邻的街区只有一个没有被占领
2.你可以控制街区i,当且仅当与i相邻的街区全部被占领
(我们讲i与j相邻当且仅当存在一条街道连接i和j)
3.占领和控制都是需要派遣一支部队过去执行任务的, 在执行任务的部队不得执行其它任务, 除非要放弃当前所占领或控制的街区
4.不可以控制曾经被占领过的街区

你的目标是调遣尽可能少的部队控制一个街区(注意: 只需要控制一个街区, 不需要把所有街区占领)
提示:你可以调遣正在执行占领任务的部队,但其所占领的街区将失去占领状态

输入

输入文件的第一行包括两个整数n和m,
接下来m行,每行两个整数i,j,表示有一条街道连接i和j两个街区

输出

如果无解请输出一行"Impossible"(不含引号)否则输出一行t表示需要调遣的最少部队数

样例输入输出

输入#1 复制
7 6
1 2
2 3
2 4
4 5
5 6
5 7
输出#1 复制
3

提示

【样例解释】
你可以进行如下调遣:
派遣部队1占领街区6
派遣部队2占领街区7
派遣部队3占领街区5
派遣部队1占领街区4
派遣部队2占领街区3
派遣部队3占领街区2
派遣部队1控制街区1


【约束条件】
1<=n<=100,000 3<=m<=1,000,000
%40的数据满足n<=1,024

序号 标题 作者 发表时间 费用 订购数 操作