atcoder#ABC230D. [ABC230D] Destroyer Takahashi
[ABC230D] Destroyer Takahashi
题目描述
行 列の格子状の区画に区切られた街に 枚の壁があり、 から までの番号が割り振られています。
壁 は上から 行目、左から 列目から 列目の範囲にあります。(入出力例 の図も参考にしてください。)
高橋君は 枚の壁をすべて破壊することにしました。
超人的な腕力を持つ高橋君は、 回のパンチで連続する 列にまとめてダメージを与えることができます。
- より厳密に言い換えると、 以上 以下の 整数 を選んで、 列目から 列目に (一部でも) 存在するすべての破壊されていない壁にパンチによるダメージを与えることができます。
壁は一部分でもダメージを受けると、パンチの衝撃波により全体が木っ端みじんに破壊されてしまいます。
(入出力例 の説明も参考にしてください。)
高橋君がすべての壁を破壊するには、少なくとも何回のパンチを放つ必要がありますか?
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
すべての壁を破壊するのに必要なパンチの最少回数を出力せよ。
题目大意
在一个 行 列的网格中有 面墙,编号为 到 。其中,编号为 的墙的左端点位于 ——即第 行第 列,右端点位于 。
你的拳头一次可以打破 连续 的 列里面的所有墙,也就是说,如果你用拳头击中了第 列,那么所有 一部分在第 到第 列里的墙 会被破坏。如果一座墙的一小部分被破坏了,整座墙就会倒塌。问题是,最少你需要打几拳才能让 座墙全都倒塌?
Translated by @xiaomuyun
3 3
1 2
4 7
5 9
2
3 3
1 2
4 7
4 9
1
5 2
1 100
1 1000000000
101 1000
9982 44353
1000000000 1000000000
3
提示
制約
- 入力はすべて整数である。
Sample Explanation 1
入力例 に対応する壁の配置を図示したものが下図です。 ![image](https://img.atcoder.jp/ghi/b7b9e6741514f51c6c0aac924589c9d2.png) たとえば次のようにパンチを放つことで、 回のパンチですべての壁を破壊することができます。(以下の説明では、 列目から 列目までの範囲を と表記します。) - まず、 にパンチを放つ。 に存在する壁である壁 と壁 はダメージを受け、破壊される。 - 次に にパンチを放つ。 に存在する壁 はダメージを受け、破壊される。 また、次の方法でもすべての壁を 回のパンチで破壊することができます。 - まず、 にパンチを放ち、壁 と壁 を破壊する。 - 次に、 にパンチを放ち、壁 を破壊する。
Sample Explanation 2
入出力例 と比べると、壁 の範囲が から に変わりました。 この場合は にパンチを放つことで 回ですべての壁を破壊できます。