題目連線:
參考文章:
思路:重點就是不同長度產生的字串的個數和字串的所有字元權值之和有關,因為每次變換都不影響最終字串的權值之和。
所以預處理長度為i,權值之和為j的字串產生的字串的個數就好了,dp[i,j]表示長度為i,字串權值之和為j的字串產生的字串的個數,注意,最終求出的結果要-1,因為不包含自己。
**:
#include using namespace std;
typedef long long ll;
const ll mod = 1e9+7;
char ss[120];
ll dp[105][3003] = ;
int main(void)
scanf("%d",&t);
while(t--)
return 0;
}
洛谷 P1410 子串行
這題乍一看毫無思路。顯然不可能窮舉長度為n 2的嚴格遞增子串行。不過聯想到noip1999 普及組 的飛彈攔截的第二問,就有思路了。這題其實與它的第二問差不多,只要算出該序列的最大非公升子串行長度l,判斷一下是否大於2即可。1.假如l 2,顯然乙個嚴格遞增子串行至多包含非公升子串行的乙個元素,2個子...
洛谷 P1410 子串行
給定乙個長度為n n為偶數 的序列,問能否將其劃分為兩個長度為n 2的嚴格遞增子串行,輸入格式 若干行,每行表示一組資料。對於每組資料,首先輸入乙個整數n,表示序列的長度。之後n個整數表示這個序列。輸出格式 同輸入行數。對於每組資料,如果存在一種劃分,則輸出 yes 否則輸出 no 輸入樣例 1 6...
洛谷P1410 子串行
給定乙個長度為n n為偶數 的序列,問能否將其劃分為兩個長度為n 2的嚴格遞增子串行,輸入格式 若干行,每行表示一組資料。對於每組資料,首先輸入乙個整數n,表示序列的長度。之後n個整數表示這個序列。輸出格式 同輸入行數。對於每組資料,如果存在一種劃分,則輸出 yes 否則輸出 no 輸入樣例 1 6...