背景&&描述
琉璃雙在撕書。
書總共有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#includeview code#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;
}
汕頭市隊賽 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行每行兩個數字分別表示洞的位...