羅区P5019舗装道路(差動)

ああ...

 

トピックリンクします。https://www.luogu.org/problem/P5019

 

まず、それが質問の意味が簡単になります。

長さNの配列を指定し、各動作はマイナス1の範囲を選択することができ、少なくとも完全な配列番号が0N≤100000になることができるどのように多くの操作を尋ねます

 

アイデア:

まず、最初の数字のために、私たちはD_I倍を超える、少なくともD_1を費やし、その後、各D_I、テンキー以上(または以下)のためにそれのその部分を考慮する必要があり、

私たちは、操作の数に一度に操作することができます。D_I> D_I場合 - D_I - - 1つの操作それは、以前の数よりも大きい1、意味、我々はD_I以上でなければなりません。

もちろん、そこに数と数の間に違いがあり、その差は、いくつかの問題の間隔が発生しますので、この質問の正の解は違いです...

我々は、次に、差は、アレイ内の0 ANSで添加することができるよりも大きい、bで差分配列を維持します。

 

ACコード:

1の#include <cstdioを>
 2の#include <iostreamの>
 3  
4  使用して 名前空間STDを、
5つの 
6  INTの ANS、D [ 100005 ]、B。
7  
8  INT メイン(){
 9      INT N。
10      のscanf(" %d個"、&N)
11      のためにint型 i = 1 ; iが<= N; iが++ ){
 12          のscanf(" %dの"、&D [I])を、
13          B = D [i]は- D [I - 1 ]。
14          であれば(B> 0)ANS + = B。
15      }
 16      のprintf(" %dの" 、ANS)。
17      リターン 0 ;
18  }
 19     
ACコード

 

おすすめ

転載: www.cnblogs.com/New-ljx/p/11267087.html