トピックリンク
https://www.luogu.org/problemnew/show/P1589
問題解決のためのアイデア
次いで左によれば、泥だらけの道路構造の各セクションの左右のポイントを保存することができる点がソート点を注文、長さLをカバーするために、次に++右点遭遇発見ANS左から、貪欲を使用して、および考え、次いで位置は、現在MAX(現在のサービスエリアに、インターバル期間の左端ポイントを)覆われています。各セグメントは、例えば泥区間[2,5]があることに注意し、内部に<代わり<=であるが、我々は、単位長さを記録する4つの端子を有し、実際には3つの単位の長さです。
ACコード
1の#include <iostreamの> 2の#include <アルゴリズム> 3 使用して 名前空間STDを、 4 int型N、L、ANS。 5 構造体EE { 6 int型のE、S。 7 } [ 10005 ]。 8 ブールCMP(EEのB、EE){ 9 リターン <などBS。 10 } 11 INT メイン(){ 12 CIN >> N >> L。 13 のためには、(int型 I = 1 [I] .S CIN >> iは++; iがn = <)[I] .Eと、 14 ソート(A +1、+ N + 1 、CMP)。 15 int型、D = [ 1 ] .S。 16 のために(int型 i = 1 ; iが<= N; iが++ ){ 17 ながら(D < [I] .E){ 18 D + = L。 19の ANS ++ ; 20 } 21 D = MAX(D、[I + 1 ] .S)。 22 } 23 COUT << ANS。 24 リターン 0 ; 25 }