題意:查詢這樣的子回文字串(未必連續,但是有從左向右的順序)個數。
簡單的區間dp,哎,以為很神奇的東西,其實也是dp,只是引數改為區間,沒做過此型別的題,想不到用dp,以後就
知道了,若已經知道【0,i】,推【0,i+1】, 顯然還要從i+1 處往回找,dp方程也簡單:
dp[j][i]=(dp[j+1][i]+dp[j][i-1]+10007-dp[j+1][i-1])%10007; 減去中間一段重複的
if(s[i]==s[j])dp[j][i]=(dp[j][i]+dp[j+1][i-1]+1)%10007; 這裡不忘記,新加入的和結尾構成的情況。
ps:弱菜還需努力!下面倆點注意。
#include#include#include#includeusing namespace std;
long long dp[1005][1005];
int main()
}printf("case %d: %d\n",cs++,dp[0][len-1]);
}return 0;
}
hdu 字串統計
problem description 對於給定的乙個字串,統計其中數字字元出現的次數。input 輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串。output 對於每個測試例項,輸出該串中數值的個數,每個輸出佔一行。sample input...
字串統計 (hdu2017)
problem description 對於給定的乙個字串,統計其中數字字元出現的次數。input 輸入資料有多行,第一行是乙個整數n,表示測試例項的個數,後面跟著n行,每行包括乙個由字母和數字組成的字串。output 對於每個測試例項,輸出該串中數值的個數,每個輸出佔一行。sample input...
字串的統計字串
給定乙個字串,統計每乙個字母的出現次數 比如aabbccc,列印出來就是a 2 b 2 c 3 思路還是採取遍歷,注意這幾個題的思路都比較類似 要注意這裡的sstream 這裡的clear 並非清空了緩衝區,而只是重置標誌,如果要重置緩衝區,則應為ss.str include include usi...