我是靠谱客的博主 天真小鸭子,最近开发中收集的这篇文章主要介绍codeforces 255C DP yy,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一开始以为是求最长字串的变种,自作聪明,用map处理,到了后期果断TLE

唉,无耐,只能参考大神代码,发现自己真是弱到家....

做法:先对最终形成的数列有个直观的想象,是锯齿形的是吧。现在要找的就是这些锯齿中最长的一个,就以每个锯齿为划分状态,然后为了使生成的矩阵尽可能长,就从头到它自己之前找底座(和他相等的一个元素),一开始基座为0.只要想和当前数结合,那么生成的锯齿肯定经过这个基座,所有可以不用怕漏考虑。

/***
锯齿图要注意了
贪心,找底座。
****/
#include<cstdio>
#include<algorithm>
#define LMT 4005
using namespace std;
int dp[LMT][LMT],a[LMT];
int main(void)
{
int n,last,j,ans=-1;
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
for( j=last=0;j<i;j++)
{
dp[i][j]=dp[j][last]+1;
if(a[i]==a[j])last=j;
ans=max(ans,dp[i][j]);
}
}
printf("%dn",ans);
}


最后

以上就是天真小鸭子为你收集整理的codeforces 255C DP yy的全部内容,希望文章能够帮你解决codeforces 255C DP yy所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部