hdu 4745 two Rabits
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4745
题解:首先要抽象出题目要求的是啥。首先对于环的问题, 我们可以倍增成链,然后环的所有情况可以通过链来解决。这道题目由于不用越过自己走过的石头,所以2*n的链就覆盖了所有情况了。然后对于每种情况,要求两个方向的兔子走的位置的权重得一样,由于走的都是同一个环,只是方向不一样,所以两个兔子走的路线一定是一个回文序列,那么这道题目就转化为求最大回文序列长度的问题了。这里的坑点就是,如果两个兔子的起点是重合的话,光算回文序列是取不到最优解的需要特殊处理一下。
ac代码:
#include <cstdio>
#include <iostream>
#include <cstring>
#include <queue>
#define mt(a) memset(a,0,sizeof(a))
using namespace std;
int dp[][];
int s[];
int main()
{
int n;
while(~scanf("%d",&n)&&n)
{
for(int i=;i<=n;i++)
{
scanf("%d",&s[i]);
s[i+n]=s[i];
dp[i][i]=dp[i+n][i+n]=;
}
for(int l=;l<=*n;l++)
{
for(int i=;i+l-<=*n;i++)
{
int j=i+l-;
dp[i][j]=max(dp[i+][j],dp[i][j-]);
if(s[i]==s[j]) dp[i][j]=max(dp[i][j],dp[i+][j-]+);
}
}
int ans=;
for(int i=;i<=n;i++)
{
ans=max(dp[i][i+n-],ans);
ans=max(dp[i][i+n-]+,ans);
}
cout<<ans<<endl;
}
return ;
}
hdu 4745 two Rabits的更多相关文章
- HDU 4745 Two Rabbits(最长回文子序列)
http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有一个环,现在有两只兔子各从一个点开始起跳,一个沿顺时针,另一个沿逆时针,只能在一圈之内跳,并且每 ...
- hdu 4745 Two Rabbits 区间DP
http://acm.hdu.edu.cn/showproblem.php?pid=4745 题意: 有两只兔子Tom Jerry, 他们在一个用石头围城的环形的路上跳, Tom只能顺时针跳,Jerr ...
- hdu 4745 Two Rabbits
思路:求最长回文子串的长度!代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #incl ...
- hdu 4745 动态规划
思路:特水的一个最长回文子序列动态规划.比赛时硬卡第一题,49WA后终于AC,可惜没时间做这题,结果成绩也就可想而知了.兔子跳一样权值的石头,并且一个正跳,一个反跳,这不就是个回文子序列吗?????! ...
- 杭州网赛 two rabbits (hdu 4745)
算法很简单,问题是,怎么证明,答案是回文序列. 设a,b走的序列按顺时针是: a1 , a2 , a3 , ... , ak b1 , b2 , b3 , ... , bk 考虑端点的2种情况: 1. ...
- HDU 4745 Two Rabbits (2013杭州网络赛1008,最长回文子串)
Two Rabbits Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others)Tota ...
- HDU 4745 Two Rabbits 区间dp_回文序列
题目链接: http://blog.csdn.net/scnu_jiechao/article/details/11759333 Two Rabbits Time Limit: 10000/5000 ...
- hdu 4745 区间dp
题意:求一个环的最长回文序列,是序列不是串 链接:点我 起点是可以任意的, 所以只要求出每个区间的最长回文序列之后取max(dp[1][i]+dp[i+1][n]),即可得最终答案 本来是想扩展两倍的 ...
- HDU 4745 Two Rabbits(区间DP,最长非连续回文子串)
Two Rabbits Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65535/65535 K (Java/Others) Total ...
随机推荐
- django post 403
同一个地址GET方式可以正常访问 在POST 提交数据过程中报403错误, 原来是1.3版本settings.py 文件中 'django.middleware.csrf.CsrfViewMiddle ...
- OpenVirtex安装
目录 环境 安装 环境 我使用的java以及maven版本如下: jdk7下载地址:https://www.oracle.com/technetwork/java/javase/downloads/j ...
- Mysql -- The used SELECT statements have a different number of columns
这是因为使用union的两个SQL语句产生的记录的表结构不一致. 必须是结构完全一致的记录集合才可以使用UNION. 以上就是两个表的字段不一样,导致,所以大家可以检查下. 可以 将 select * ...
- Razor syntax reference for ASP.NET Core
Razor syntax reference for ASP.NET Core Razor is a markup syntax for embedding server-based code int ...
- SQL-W3School-函数:SQL LAST() 函数
ylbtech-SQL-W3School-函数:SQL LAST() 函数 1.返回顶部 1. LAST() 函数 LAST() 函数返回指定的字段中最后一个记录的值. 提示:可使用 ORDER BY ...
- python学习:python的常用功能示例2
1. python 写入txt with open("douban.txt","w") as f: f.write("这是个测试!") fi ...
- [CareerCup] Guards in a museum 博物馆的警卫
A museum was represented by a square matrix that was filled with O, G, and W where O represented ope ...
- iOS-UILabel的使用
常用属性UILabel //显示的文字 @property(nonatomic,copy) NSString *text; //字体 @property(nonatomic, ...
- async/await小知识点
一.使用async修饰的函数,返回的内容就是一个Promise,因此可以使用Promise对象所有的方法,如then等 二.在async函数中使用await是否会影响其他代码的执行,答案是:不会.
- 给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换)
需求:给定一个字符串str,将str中连续两个字符为a的字符替换为b(一个或连续超过多个字符a则不替换) 如: a 不替换 b 不替换 ab 不替换 ba 不替换 aba 不替换 aab 替换为 ...