効果の件名:
「R」の文字列で与えられ、「G」、「B」は長さkの選択されたサブストリングは、また、文字を変更する場合に、少なくとも」RGBRGBRGBを必要とするNの長さ、からなる文字列であり、... 「ストリング。
アイデア:
小規模なテストデータの簡易版、あなたは暴力を指示することができます。
一致変化は+ 1の番号と一致しない場合は3例(それぞれ「R」、「G」、「B」は開始)、最小のマッチングが終了するたびに更新されます。
コード:
1つの#include <iostreamの> 2 3 使用して 名前空間STDを、 4 5 int型Q、N、K、MMIN。 6 チャー ORI [ 3 ] = { ' R '、' G '、' B ' }。 7 チャー S [ 2002 ]。 8 9 int型 My_Min(INT A、INT B) 10 { 11 リターン A> B?B:; 12 } 13 14 INTmain()の 15 { 16 CIN >> Q。 17 18 のために(int型 I = 1 ; I <= Q iが++ ) 19 { 20 CIN >> N >> K。 21 MMIN = 20000 。 22 のために(INT J = 1 ; J <= N; J ++ ) 23 { 24 CIN >> S [J]。 25 } 26 27 のために(int型 J = 1 ; J <= N-K + 1; J ++ ) 28 { 29 のint NUM [ 4 ] = { 0 }。 30 のための(int型 T = 0、T <K、T ++ ) 31 { 32 であれば(S [J + T] = ORI [T%!3 ]) 33 { 34 NUM [ 1 ] ++ ; 35 } 36 であれば(S [J + T]!= ORI [(T + 1)%3 ]) 37 { 38 num個の[2 ] ++ ; 39 } 40 であれば(S [J + T] = ORI [(T +!2)%3 ]) 41 { 42 NUM [ 3 ] ++ ; 43 } 44 } 45 MMIN = My_Min(My_Min(MMIN、NUM [ 1 ])、My_Min(NUM [ 2 ]、NUM [ 3 ]))。 46 } 47 COUT << MMIN << ENDL。 48 } 49 リターン 0 。 50 }