A.
水問題
1の#include <ビット/ STDC ++ H> 2 3 使用して 名前空間STDを、 4 の#define INT長い長い 5 INT ARR [ 25000 ]。 6 署名されたメイン(){ 7 INT N。 8 CIN >> N。 9 用(INT I = 1 ; I <= N; I ++ ){ 10 CIN >> ARR [I]。 11 } 12 INT ANS = 0 。 13 のために(INT iは= 2、I <N; I ++){ 14 であれば(ARR [I]> MAX(ARR [I- 1 ]、ARR [I + 1 ])){ 15の ANS ++ 。 16 } そう であれば(ARR [I] <分(ARR [I- 1 ]、ARR [I + 1 ])){ 17 ANS ++ 。 18 } 19 } 20 COUT << ANS。 21 リターン 0 。 22 }
Bタイトル
思考
1の#include <ビット/ STDC ++ H> 2 3 使用して 名前空間STDを、 4 の#define INT長い長い 5 INT ARR [ 25000 ]。 6 署名されたメイン(){ 7 INT N; CIN >> N。 8 文字列sの。 9 cinを>> S。INTは L = 0、D = 0、U = 0、R = 0 。 10 のために(INT iが= 0 ; I <s.size(); I ++ ){ 11が あれば(S [I] == ' L' ){ 12 リットル++ 。 13 } そう であれば(S [I] == ' R ' ){ 14 R ++ 。 15 } そう であれば(S [I] == ' D ' ){ 16 D ++ 。 17 } 他{ 18 U ++ 。 19 } 20 } 21 COUT << MAX(最小(MIN(L、R)、分(D、U))* 4、2 *分(L、R)+ 2* MIN(D、U))。 22 リターン 0 ; 23 }
Cのタイトル思考
質問の意味:
質問の意味:任意の長さの部分文字列のk個の文字列は、文字が含まれている必要があり、どのように多くの最小長kを求めました。
溶液:最初の同じ文字を前処理との間の長さは、次に、アレイ(ここで注意前面と最後尾の治療)に格納されている文字が含まれている必要があり、我々は確かに最大配列内を取らなければなりませんOK、それまで除去の最大値、最小値の比較。
1の#include <ビット/ STDC ++ H> 2 使用して 名前空間STDを、 3 の#define N 2000000 4 の#define INF 1 << 30 5ベクトル< INT > V [N]。 6 署名されたメイン(){ 7 INTの和= INF。 8 9 文字列 strの; cinを>> STR。 10 INT LEN = str.size()。 11 のために(INT iが= 0 ; I < 26 ; I ++ ){ 12 V [i]が.push_back(0 )。 13 } 14 のための(INT iは= 0 ; I <str.size(); I ++ ){ 15 V [STR [I] - [ A ' ] .push_back(I + 1 )。 16 } 17 のために(INT iが= 0 ; I < 26 ; I ++ ){ 18 、V [i]は.push_back(str.size()+ 1 )。 19 } 20 のために(INT iは= 0 ; I < 26 ; I ++ ){ 21 、INT、T = 0 。 22 のために(INT J = 1 ; J <V [I] .size(); J ++ ){ 23 、T = MAX(T、V [i]は[J] -v [I]、[J- 1 ])。 24 } 25 もし(T!)続けます。 26 和= 分(T、合計)。 27 } 28 COUT << 和。 29 リターン 0 ; 30 }