汕頭市隊賽 SRM 09 C 撕書

2022-04-30 08:24:07 字數 1045 閱讀 5672

背景&&描述

琉璃雙在撕書。

書總共有n頁,每頁都可以看作是乙個數字。

琉璃讀書喜歡來回地讀。但他也因此發現了作者的灌水行為:有些連續的若干頁正著讀和倒著讀完全一樣,也就是說是回文的。

發生這種情況時,琉璃會非常地angry,把那些書頁給撕掉。

汀撿到了本黑色的魔法書。因為擔心殺死書後會帶來麻煩,決定借琉璃的手把書處置掉。

大概就是每次選出剩餘書頁中的乙個回文子串,拿給琉璃看....

汀比較懶,他想知道最少選多少次就能讓琉璃把整本書都撕光。

注意,撕完一段之後會導致原本不相鄰的兩頁變得相鄰。

輸入格式

第一行乙個整數n,表示書的頁數。

第二行為n個數字。

輸出格式

乙個整數,表示最少選多少次。

樣例輸入

7

1 4 4 2 3 2 1

樣例輸出

2
資料範圍與約定

樣例解釋

先撕掉第2,3頁,然後把剩下的直接撕掉。

**cf原題

dp還是太弱啊

列舉長度 f【i】【j】表示從i——j撕掉這一段所需要的次數

如果s【i】==s【j】 f【i】【j】可以從f【i+1】【j-1】轉移過來

當然還要列舉端點判斷是否有更優的情況

#include#include

#include

using

namespace

std;

const

int m=507,inf=0x3f3f3f3f

; int

read()

while(c>='

0'&&c<='9')

return ans*f;

}int

n;int

f[m][m],s[m];

intmain()

}printf(

"%d\n

",f[1

][n]);

return0;

}

view code

汕頭市隊賽 SRM 09 A 撕書

背景 描述 琉璃在撕書。書總共有n頁,都懸浮在數軸上,第i頁的位置為 上面寫著乙個數字 琉璃從右往左撕書。假如看到了第i頁,就把在第i頁左邊,且與之距離 的書都撕掉。第i頁本身不撕 夜子為了盡量地保全魔法書,決定偷偷在琉璃開始撕之前,增加一頁。增加的這一頁必須在所有書頁的右邊,數字隨意。夜子想知道,...

汕頭市隊賽 SRM 08 A

比賽沒參加 所以回來補題咯 a還是自己yy出來了的 可惜比賽沒有打 描述給乙個 01 串設為其 s,詢問是否存在只出現兩次的 01 串 t。這裡的出現定義為存在一串下標 滿足第二個樣例中,0 出現了兩次 這道題肯定先特判一波 1 和 0 是否只出現了2次 這是唯一乙個t能由單一的1或者0組成的情況 ...

汕頭市隊賽 SRM16 T2

描述 貓和老鼠,看過吧?貓來了,老鼠要躲進洞裡。在一條數軸上,一共有n個洞,位置分別在xi,能容納vi只老鼠。一共有m只老鼠位置分別在xi,要躲進洞裡,問所有老鼠跑進洞裡的距離總和最小是多少。輸入格式 兩個用空格隔開的整數m和n。這一行m個數字分別表示老鼠的位置 接下來n行每行兩個數字分別表示洞的位...