uva 10617
来源:互联网 发布:windows linux mac知乎 编辑:程序博客网 时间:2024/06/11 16:13
这题想了一下,可以枚举出str[i]、str[j]的所有决策:
1、如果str[i] == str[j],不删除str[i] str[j]:dp[i][j] += dp[i+1][j-1] + 1(1表示把[i+1,j-1]全删除后,它还是回文);
2、删除str[i]:就是dp[i+1][j];
3、删除str[j]:就是dp[i][j-1];
4、同时删除str[i]、str[j]:就是dp[i+1][j-1];注意2和3的重合就是4情况。
过了样例,提交居然WA了!一看网上的代码,居然是64位!于是改成long long。AC!
//uva_10617.c#include <stdio.h>#include <string.h>#defineN70charstr[N];long longdp[N][N];int main(){int i, j, n, t;scanf("%d", &t );while ( t -- ) {scanf("%s", str );memset( dp, 0, sizeof(dp) );n = strlen(str);for ( i = 0; i < n; ++ i )dp[i][i] = 1;for ( i = n-2; i >= 0; -- i ) {for ( j = i+1; j < n; ++ j ) {if ( str[i] == str[j] ) {//no removedp[i][j] = dp[i+1][j-1] + 1;//1表示i+1-->j-1全部删除}dp[i][j] += dp[i+1][j] + dp[i][j-1] - dp[i+1][j-1];}}printf("%lld\n", dp[0][n-1] );}return 0;}
- uva 10617
- uva 10617
- UVA 10617
- uva 10617 Again Palindrome
- UVA 10617 - Again Palindrome
- UVA 10617 Again Palindrome
- UVa 10617 - Again Palindrome
- uva 10617 Again Palindrome
- Uva 10617 Again Palindromes
- UVA - 10617 Again Palindrome
- UVa:10617 Again Palindrome
- UVA 10617 Again Palindrome
- uva 10617 - Again Palindrome
- uva 10617(dp)
- UVA 10617 区间DP
- UVA - 10617 Again Palindrome
- UVA - 10617 Again Palindrome
- UVA 10617 - Again Palindrome
- [023] Android平台的信息推送实现
- tcp通信简单实例(java语言实现)
- 代码质量准则
- proxool 同其它连接池技术比较
- Hibernate学习笔记三
- uva 10617
- 从客户端中检测到有潜在危险的 Request.Form 值
- super(); //这个一定要放在第一句
- 修改eclipse默认字体字号,让开发更舒服
- POJ 1698 Alice's Chance
- /sys/power/ 电源管理 SYS接口
- 《程序员密码学》之AES加密算法
- 使用POI插件对EXCEL 进行操作RecordFormatException:unable to construct record instance异常
- 邮件发送类