Atcoder初心者Contest153F(アナログ)

また、DOへの生活モンスターのセグメントツリー/フェンウィックツリー更新間隔の値である必要があります

1  の#define HAVE_STRUCT_TIMESPEC
 2の#include <ビット/ STDC ++ H>
 3  使用して 名前空間STDを、
図4は、 長い 長いプレ[ 200007 ]。
5  INT メイン(){
 6つの      IOS :: sync_with_stdio()。
7      cin.tie(NULL)。
8      cout.tie(NULL)。
9      長い N、D、。
10      CIN >> N >> D >> 11      ベクター<ペア< 長い 長い長い 長い >> V。
12      のためののInt I = 1 ; I <= N; ++ I){
 13は         ロング ロングX、Yは、
 14          CIN >> X Y、
 15          ロング ロング Z =(Y- 1)/ A + 1 ;
 16          v.push_back ({X、Z});
 17      }
 18で     並び替え(v.begin()、v.end());
 19      ロング ロング ANS = 0 ;
 20      ロング ロング SUM = 0 ;
 21である     INT R&LT = 1 ; // ないヒット最近のレンジ
22      のためにint型私は= 0 ;私は<N-; ++ I){
 23は         、一方(R&LT <N - && V [R&LT] 1次回<= V [I] 1次回+ 2 * D)
 24              ++ R&LT;
 25          プリsum- = [I] ; // 合計ダメージが以前に現在の位置に施された和である
26ことである          V [I] .second- = SUM;
 27          IF(V [I] .second <= 0 28が             続行;
 29          SUM = V + [I] .second ; // 累積損傷
30          プレ[R] = + V [I] .second; // 総ダメージR前回位置クマ
31は          ANS = + V [I] .second;
 32      }
33      coutの<< 年。
34      リターン 0 35 }

 

おすすめ

転載: www.cnblogs.com/ldudxy/p/12236129.html