HDU4745--区间DP+回文串
这题的题意为,给你一个环状的字符串,有两只兔子分别从某任意的石头上开始跳跃。一只顺时针跳、一只逆时针跳。两只兔子每一次落脚处石头的质量都相同。兔子要一步一步的跳,且不能跳到之前跳到过的地方。总的来说,就是一只兔子最多就只能跳一整圈。每一次两只兔子落点的权值都相同,问兔子最多可以跳几次。这一题可以简化,用区间DP来求所有区间内的最长回文串长度。之后一遍for循环遍历,把区间[0,n-1]划分成[0,k]和[k+1,n-1]。找到这两个区间回文串长度和的最大值,即为答案。证明如下:

我们把区间分成了两部分 我们假设是串A和串B 我们可以把串A分成镜面对称的字符串a和字符串a,同理分解B。相当于拆成了43个串,但a和a连续 b和b连续。两个兔子设为从同一点出发。概念如图所示。
因此,求得A和B的最大回文长度之和,即求到了结果。代码如下:
#include<iostream>
#include<string.h>
using namespace std;
int T,i,j,k,l,n,m;
int a[][];
int c[];
int main()
{ while(cin>>n&&n!=)
{
memset(a,,sizeof(a));
for(i=;i<n;i++) cin>>c[i];
for(i=;i<n;i++) a[i][i]=;
for(i=n-;i>=;i--)
for(j=i+;j<n;j++)
{
if(c[i]==c[j]) a[i][j]=a[i+][j-]+;
else a[i][j]=max(a[i+][j],a[i][j-]);
}
int ans=;
for(i=;i<n-;i++) ans=max(ans,a[][i]+a[i+][n-]);
cout<<ans<<endl; }
}
HDU4745--区间DP+回文串的更多相关文章
- CodeForces-245H:Queries for Number of Palindromes(3-14:区间DP||回文串)
Times:5000ms: Memory limit:262144 kB 给定字符串S(|S|<=5000),下标由1开始.然后Q个问题(Q<=1e6),对于每个问题,给定L,R,回答区间 ...
- LightOJ - 1205:Palindromic Numbers (数位DP&回文串)
A palindromic number or numeral palindrome is a 'symmetrical' number like 16461 that remains the sam ...
- poj 1159 dp回文串
题意:添加最少的字符使之成为回文串 #include<cstdio> #include<iostream> #include<algorithm> #include ...
- poj 3280 Cheapest Palindrome ---(DP 回文串)
题目链接:http://poj.org/problem?id=3280 思路: dp[i][j] :=第i个字符到第j个字符之间形成回文串的最小费用. dp[i][j]=min(dp[i+1][j]+ ...
- hdu 4632区间dp 回文字串计数问题
Palindrome subsequence Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 131072/65535 K (Java/ ...
- 1159--Palindrome(dp:回文串变形2)
Palindrome Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 53431 Accepted: 18454 Desc ...
- GDUT 校赛02 dp回文串
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABSkAAAIhCAIAAAAtmainAAAgAElEQVR4nOzdfaxkd33n+ZJacstqa3 ...
- [LeetCode] Palindrome Partitioning II 拆分回文串之二
Given a string s, partition s such that every substring of the partition is a palindrome. Return the ...
- 集训第五周动态规划 H题 回文串统计
Hrdv is interested in a string,especially the palindrome string.So he wants some palindrome string.A ...
随机推荐
- 浅析 Hinton 最近提出的 Capsule 计划
[原文] 浅析 Hinton 最近提出的 Capsule 计划 关于最新的 Hinton 的论文 Dynamic Routing Between Capsules,参见 https:// ...
- vue中mint-ui的index-list 在手机端滑动问题
官方的demo这里滑动很流畅,按着官网demo复制的在手机上必须手指拖着才能动,不能滑动: 加入 这段代码就行 -webkit-overflow-scrolling: touch; overflow- ...
- Python学习之旅(二十二)
Python基础知识(21):IO编程 一.文件读写 读写文件就是请求操作系统打开一个文件对象(文件描述符),然后,通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写入这个文件对象 ...
- 使用正则表达式进行某网页中的email邮箱抽取
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; impo ...
- vue的数据双向绑定和ref获取dom节点
vue是一个MVVM的框架 业务逻辑代码即js部分是model部分, html是view部分. 当model改变的时候,view也会改变 view 改变是,model也会改变 <template ...
- Java Web 笔试(面试)题
1.Servlet 的生命周期,并说出 Servlet 与 CGI 的区别 Web 容器加载 Servlet 并将其实例化后,Servlet 生命周期开始,容器运行其 init 方法进行 Servle ...
- swp文件已存在
vim编辑某个文件时,提示.xxx.sh.swp文件已存在是因为异常退出后,linux会生成一个swp文件,无论选择什么,下次进入还是会提示ll 命令无法看到文件使用 rm -rf .xxx.sh.s ...
- Gym 101873C - Joyride - [最短路变形][优先队列优化Dijkstra]
题目链接:http://codeforces.com/gym/101873/problem/C 题意: 这是七月的又一个阳光灿烂的日子,你决定和你的小女儿一起度过快乐的一天.因为她真的很喜欢隔壁镇上的 ...
- 表驱动方法(Table-Driven Methods)
表驱动方法(Table-Driven Methods) - winner_0715 - 博客园 https://www.cnblogs.com/winner-0715/p/9382048.html W ...
- [Day11]接口、多态
1.接口 (1)接口定义:interface关键字 ,所在文件仍然是.java文件,编译后仍产生.class文件. 定义格式 public interface 接口名{ 抽象方法1: 抽象 ...