Air Raid 空袭

题目链接:https://acs.jxnu.edu.cn/problem/HDU1151

描述:

考虑到一个城镇所有街道都是单向的,每条街道都从一个十字路口通向另一个十字路口。 众所周知,从十字路口开始穿过城镇的街道,你永远无法到达同一个十字路口,即城镇的街道不形成循环。
有了这些假设,你的任务是编写一个程序,找出可以降落在城镇上的最小数量的伞兵,并以这样的方式访问这个城镇的所有交叉点,这样一个以上的伞兵就不会访问任何交叉点。 每个伞兵降落在一个十字路口,可以沿着城镇街道访问其他十字路口。 每个伞兵的起始路口没有限制。

输入:

你的程序应该能读取数据集。输入文件的第一行包含数据集的数量。每个数据集指定一个城镇的结构并具有以下格式:
no_of_intersections
no_of_streets
S1 E1
S2 E2
……
Sno_of_streets Eno_of_streets
每个数据集的第一行包含一个正整数 no_of_intersections(大于 0 且小于等于 120),即城镇的交叉口数量。第二行包含一个正整数 no_of_streets,它是该镇的街道数。接下来的 no_of_streets 线,对应城镇中的每条街道,是随机排序的,代表城镇的街道。与街道 k (k <= no_of_streets) 对应的行由两个正整数组成,由一个空格分隔: Sk (1 <= Sk <= no_of_intersections) - 作为街道起点的交叉口编号,以及 Ek ( 1 <= Ek <= no_of_intersections) - 街道尽头的交叉口编号。交点由从 1 到 no_of_intersections 的整数表示。
连续的数据集之间没有空行。输入数据正确。

输出:

程序的结果在标准输出上。 对于每个输入数据集,程序在一行上打印,从行首开始,一个整数:访问镇上所有十字路口所需的最少伞兵人数。

样例输入:

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

样例输出:

2
1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值