poj1159-LCS滚动数组优化。
来源:互联网 发布:网络专科可以自考本科 编辑:程序博客网 时间:2024/05/19 13:58
题目连接
题意:
回文,就是从某一个字后面一次往回走。比如abdsdba从s开始后面的字符刚好往回走了,给你一个字符串,问你要插入至少多小个字符可以补成回文。
分析:
此题就是比较两个正序和逆序的字符的最长公共子序列。由于字符串长度达5000个。开关5000*5000二维数组,是超内存。
方法就是。利用滚动数组。
#include<stdio.h>#include<string.h>#define max(a,b) a>b?a:bint dp[2][5001];int main(){int n,i,j;char s[5001],t[5001];while(scanf("%d",&n)!=EOF){scanf("%s",s); int ans=0; memset(dp,0,sizeof(dp)); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(s[i-1]==s[n-j]) dp[i%2][j]=dp[(i-1)%2][j-1]+1; else dp[i%2][j]=max(dp[(i-1)%2][j],dp[i%2][j-1]); ans=max(ans,dp[i%2][j]); } } printf("%d\n",n-ans); }}
- poj1159-LCS滚动数组优化。
- Palindrome POJ1159 LCS+滚动数组
- POJ1159求LCS长度 滚动数组优化空间
- poj1159(回文串+LCS+滚动数组)
- poj1159 dp 滚动数组
- poj1159(滚动数组 + DP)
- 滚动数组 poj1159 Palindrome
- poj1159 LCS
- poj1159 【LCS】
- poj1159 palindrome(动态规划+滚动数组)
- POJ1159 Palindrome 动态规划+滚动数组
- POJ1159 Palindrome(滚动数组DP)
- POJ1159回文字符串(DP+滚动数组)
- HDU1513(LCS+滚动数组)
- POJ1159Palindrome【LCS+滚动数组】
- LCS滚动数组解法
- hdu_1513_Palindrome(LCS+滚动数组)
- poj 1159 Palindrome LCS一维滚动数组优化
- tomcat提供的线程池
- linux开机加载
- 计算机图形学——OpenGL开发库开发库
- 网络流初步总结
- unity3d导入模型设置模型之间的物体碰撞
- poj1159-LCS滚动数组优化。
- Ant的任务(task)
- t.interrupt(), Thread.interrupted(), native isInterrupted()
- Andrew Stankevich's Contest #1 Solution
- hdu 1429 BDF+二进制状态压缩
- NOJ 240题小明的调查统计(二)结构体按照多个条件排序
- 使用ACE获取主机的IP地址
- ubuntu下非本账户的.profile文件的修改
- ubuntu 下安装 pthread man 遇到的一些问题