codeforces 159D dp + strings 好题
2012-11-08 13:58
134 查看
关键:很巧妙的枚举思路,枚举回文字符串中间字符的位置i,复杂度O(n),
然后统计 以i为起始位置的回文串的个数放在数组p[]中,以末尾位置的回文串的个数放在数组q[]中。
最后处理一下即可
View Code
然后统计 以i为起始位置的回文串的个数放在数组p[]中,以末尾位置的回文串的个数放在数组q[]中。
最后处理一下即可
View Code
#include<stdio.h> #include<string.h> #define lld __int64 char s[2006]; int p[2006], q[2006]; lld ans; int main() { int i, j; int l = strlen(gets(s+1)); int a, b; for(i = 1; i <= l; i++) { for(a = i, b = i+1; a && b <= l && s[a] == s[b]; a--, b++) p[a]++, q[b]++; for(a = b = i; a && b <= l && s[a] == s[b]; a--, b++) p[a]++, q[b]++; } for(i = l; i >= 1; i--) p[i] += p[i+1]; for(i = 1; i <= l; i++) ans +=(lld) p[i+1] * q[i]; printf("%I64d\n", ans); return 0; }
相关文章推荐
- codeforces 159D dp + strings 好题
- codeforces水题100道 第二十七题 Codeforces Round #172 (Div. 2) A. Word Capitalization (strings)
- 4000 codeforces 296B - Yaroslav and Two Strings (DP+容斥)
- codeforces 149E Martian Strings(KMP)
- codeforces 543 C Remembering Strings
- codeforces-447B-DZY Loves Strings
- Codeforces 149 E. Martian Strings
- CodeForces-204E:Little Elephant and Strings (广义后缀自动机求出现次数)
- 【CodeForces】A. Petya and Strings
- Codeforces 112A-Petya and Strings(实现)
- CodeForces - 798B:Mike and strings
- Codeforces 868D (Codeforces Round #438 D) Huge Strings 分治+哈希
- Codeforces 151C Quantity of Strings(快速幂+数学分情况)
- codeforces 149E . Martian Strings kmp
- CodeForces 447B---DZY Loves Strings
- CodeForces 150B- Quantity of Strings 推算..
- Codeforces 360C - Levko and Strings 组合数学+DP
- Codeforces-150B-Quantity of Strings(思维)
- codeforces 518 A. Vitaly and Strings
- codeforces 288A:Polo the Penguin and Strings