总攻巴格达
   

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

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

  你的目标是调遣尽可能少的部队控制一个街区(注意: 只需要控制一个街区, 不需要把所有街区占领)

  提示:你可以调遣正在执行占领任务的部队,但其所占领的街区将失去占领状态

  约束条件:

  1<=n<=100,000 3<=m<=1,000,000
  %40的数据满足n<=1,024

  输入格式:

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

  输出格式:

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

  样例输入:

  7 6
  1 2
  2 3
  2 4
  4 5
  5 6
  5 7

  样例输出:

  3

  对样例的解释:

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

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有