$ Noip2018 / Luogu5019 / Luogu1969 $舗装道路

$ Luogu $

 

フェンウィック木+差分、その後、$ A $ A $ OVO $:私は元のタイトルを行っていない、とし、テストにはほとんど暴力を書くために最適化された正ソリューション、思い付くなかった昨年、$ NOIP $。

 

$ソル$

再び限り$ O(N)$掃引は、限り現在の値が前の値よりも大きくなるように、その答えは、これら2つの値の累積的な絶対差である。$を超えます。$

 

$コード$

書式#include <iostreamの> 
の#include <cstdioを>
 に#define RG登録
 の#defineは長い長いでしょ 
 使用して 名前空間はstdを、
int型読み取り()
{ 
  int型、X = 0、Y = 1char型のC; 
  C = GETCHAR()。
  一方、(C < ' 0 ' || C> ' 9 '){ もし、(C == ' - ')Y = - 1 ; C = GETCHAR();}
   一方(> = C ' 0 ' && C <=' 9 '){X =(X << 1)+(X << 3)+ C- ' 0 ' ; C = GETCHAR();}
   戻りのx *のY。
} 
INT N; 
ANS LL; 
INT [ 100010 ]、B [ 100010 ]。
INT lowbit(INT X)
{ 
  戻り X&( - X)。
} 
ボイド追加(int型のx、int型K)
{ 
  (RG int型 I = xを、I + = lowbit(I); iが<= N)B [I] + = K。
} 
LL和(INTX)
{ 
  LL SUM1 = 0 (RG int型 ; I> = I = xを1、I- = lowbit(I))
    SUM1 + = B [i]は、
  リターンSUM1。
} 
int型R、ミネソタ州、Lと、
INT メイン()
{ 
  freopenは(" road.in "" R " 、STDIN)。
  freopenは(" road.out "" W " 、STDOUT)。
  N =読み取る();ミネソタ州= 2.1億(RG int型i = 1 ; iが<= N; iが++ 
    { 
      [I] = (読み取り)
      ミネソタ州 = 分([I]、ミネソタ州)。
      (I、[i]を追加 -a [I- 1 ])。
    } 
  ANS + = ミネソタ。
  (追加1、 - ミネソタ州)。
  もし([ 1 ] =!0)、L = 0 (RG のint i = 1 ; I <= N; I ++ 
    { 
      int型、S = SUM(I)。
      もし(S)
    { 
      場合(1- == 0){L = I; R = I; =のS;}
       そうでなければ {=分(単数または複数); R = I;}
       OW(I = N)!続けます
    } 
      エルス OW(1- == 0続けます
      ANS + = A。
      (に追加 - A)
      OW(R <n)の数(R + 1 、A)。
      I = 1、L = 0 
    } 
  のprintf(" %のLLD " 、ANS)
  リターン 0 ; 
}
ビュー診察室コード
書式#include <iostreamの> 
の#include <cstdioを>
 に#define ILインライン
 の#define Rgを登録し
 ます。#defineは(私を、b)に行く(RG int型I = A;私は= Bの<; ++ i)に対する
 の#defineは長い長いっ
 使用して 名前空間はstdを、
ILのINTのリード()
{ 
    たRG INT X = 0、Y = 1チャー C = GETCHAR()。
    一方、(C < ' 0 ' || C> ' 9 '){ もし、(C == ' - ')Y = - 1 ; C =GETCHAR();}
     一方(> = C ' 0 ' && C <= ' 9 '){X =(X << 1)+(X << 3)+ C- ' 0 ' ; C = GETCHAR();}
     リターンのx *のY; 
} 
int型、N yはxと; LL として;
INT ()は、メイン
{ 
    N = 読み取ります()。
    (I、行く1、N){Y =読み取り()。もし(Y> X)として + = Y-X; X = Y;} 
    のprintf(" %LLDする\ n "など)。
    リターン 0 ; 
}
View 正解 Code

 

おすすめ

転載: www.cnblogs.com/forward777/p/11402704.html