NOIP模擬題 愉快的logo設計

2022-08-17 10:18:18 字數 1782 閱讀 3297

【description】

k理事長正在思考日本資訊學奧林匹克競賽選手的應援道具的logo問題。某天,k理事長突發奇想,想要設計乙個用』j』,』o』,』i』三種文字環形排列的logo,意為希望選手能從joi中收穫快樂的意思。

(注:「環形地」在日文中的表述為「円狀に」,「円」讀作「en」,再加上「joi」三個字即為「enjoy」„„)

如下所示,對於任意非負整數k,我們定義標號為k的joi序列sk為:

·s0為』j』,』o』,』i』中任一字元構成的長度為1的字串

·s[k+1]為最初4^k個字元都是』j』,接下來的4^k個字元都是』o』,接下來的4^k個字元都是』i』,最後4^k個字元是字串sk的長為4^(k+1)的字串

現在,k理事長在紙上寫下了由4^k個文字構成的乙個環形字串,字串中每個字元都是』j』,』o』,』i』中的乙個。k理事長想要修改一些文字,使得得到的字串從某個起點開始順時針讀一圈後可以得到sk。在滿足條件的情況下,要求修改的文字數量最少。

【input】

第一行乙個正整數k,表示k理事長在紙上寫下了乙個長度為4^k的環狀字串。

第二行乙個由』j』,』o』,』i』三個字元構成的長為4^k的字串,表示紙上的環形字串從某個起點出發順時針閱讀一圈得到的字串。

【output】

輸出一行乙個整數,表示修改文字數量的最小值。

【sample input】

2jjoijjojoiojoooi

【sample output】

7【hint】

從○標記的位置順時針閱讀一圈得到「jjjjooooiiiijoij」,滿足s2的條件,且修改文字數達到最小值7。

【data constraint】

對於30%的資料,1<=k<=5

對於100%的資料,1<=k<=10

暴力找起點,每一次都看當前區間匹配的個數,然後跳到下乙個小區間。到最後乙個區間時,長度為1,最後乙個點一定是匹配的,所以最後匹配數要加上1。由於每一次都找區間的匹配,且區間長度不同,所以考慮字首和:將前i個的所有的j、o、i儲存起來。由於題目描述說是乙個環,所以可以處理成2條鏈拼接在一起,然後列舉。時間複雜度o(k*4^k)。

1 #include2 #include3 #include4

using

namespace

std;

5const

int maxn=1100000;6

char q[(maxn<<1

)];7

int f[(maxn<<1)][5];8

int k;int ans=99999999;9

int so=0

;10 inline void solve(int

x)11

25int

main()

2637 so=(1

<

));38

int qwer=so;

39for(int i=1;i<=tot*2;i++)

40solve(i);

41for(int i=1;i<=tot;i++)

4254 ans=min(ans,tot-qwe-1

);55

}56 printf("%d"

,ans);

57return0;

58 }

NOIP模擬 愉快的logo設計

k理事長正在思考日本資訊學奧林匹克競賽選手的應援道具的logo問題。某天,k理事長突發奇想,想要設計乙個用 j o i 三種文字環形排列的logo,意為希望選手能從joi中收穫快樂的意思。注 環形地 在日文中的表述為 円狀 円 讀作 en 再加上 joi 三個字即為 enjoy 如下所示,對於任意非...

NOIP模擬題 連通

給定乙個無向圖,請編寫乙個程式實現以下兩種操作 1 d x y,從原圖中刪除連線x和y頂點的邊。2 q x y,詢問x和y頂點是否連通。這也是連通問題,考慮用並查集解決。但是這是刪除的問題耶,怎麼辦?考慮將刪除變為連通,能不能將所有操作給反過來,從最後乙個操作開始處理。當然是可以的。include ...

Noip模擬題 山峰

description在n m的棋盤上不重複的填1到n m 如果乙個數字比周圍的八個數字大,那麼他就是乙個山峰。現在告訴你所有山峰的位置,問你填數的方案數mod 12345678 input 輸入第一行兩個數字 n m意義如題目描述。接下來n 行,每行 m個字元,表示非山峰,x 表示山峰。1 n 4...