懒惰的工程师
   



  SimCity共有n个街区,编号分别是1,2,...,n,SimCity的高速公路都是直接连接两个不同的街区,而且是单行的,你作为SimCity的工程师接到修建m条高速公路的任务,但是懒惰的你决定不按照指定的任务而是按照自己的计划修建公路,你所制定的修建计划需要满足以下两个条件:

  1.如果在任务的m条公路中i可以到达j,那么在你的修建计划里i也一定要可以达到j
  2.如果在任务的m条公路中i不能到达j,那么在你的修建计划里i也不能到达到j
  3.你的修建计划必须使在满足前两个条件的情况下修建的公路条数最小

  约束条件:

  3<=n<=2,000 3<=m<=20,000
  %40的数据满足m<=2,000

  输入格式:

  输入文件的第一行是两个整数n和m,
  接下来m行,每行两个整数i,j,表示你的任务里包括修建一条从i到达j的单向高速公路

  输出格式:

  输出文件的第一行为一个整数t表示你的计划中修建需要修建的公路条数,
  接下来t行,每行两个整数i,j,表示你的计划中包括修建一条从i到达j的单向高速公路

  样例输入:

  4 6
  1 2
  1 3
  1 4
  2 3
  2 4
  3 4

  样例输出:

  3
  1 2
  2 3
  3 4

 

   

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