Codeforces Round #156 (Div. 1)A dp
来源:互联网 发布:windows官网注册 编辑:程序博客网 时间:2024/06/05 23:08
//对每个数进行一个编号,
//dp[i][j]表示第i个数其前面是第j个数得到的最长子序列
//dp[i][j] = dp[i][j] = dp[last[j]][map[num[i]]] + 1;
//last[j]是编号为j的数的最后出现的位置
//map[num[i]]第i个数的编号
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std ;
const int maxn = 4010 ;
const int maxm = 1000010;
int map[maxm];
int last[maxn];
int dp[maxn][maxn] ;
int num[maxn] ;
int main()
{
int n;
while(~scanf("%d" ,&n))
{
for(int i = 1;i <= n;i++)
scanf("%d" ,&num[i]) ;
int len = 1;
memset(map, 0 ,sizeof(map));
for(int i = 1;i <= n;i++)
if(!map[num[i]])
map[num[i]] = len++ ;
memset(dp , 0 ,sizeof(dp)) ;
int ans = 1;
last[map[num[1]]] = 1;
for(int i = 1;i <= len;i++)
dp[1][i] = 1;
for(int i = 2;i <= n;i++)
{
for(int j = 1;j < len;j++)
{
dp[i][j] = dp[last[j]][map[num[i]]] + 1;
ans = max(dp[i][j] , ans) ;
}
last[map[num[i]]] = i;
}
printf("%d\n",ans) ;
}
}
//dp[i][j]表示第i个数其前面是第j个数得到的最长子序列
//dp[i][j] = dp[i][j] = dp[last[j]][map[num[i]]] + 1;
//last[j]是编号为j的数的最后出现的位置
//map[num[i]]第i个数的编号
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std ;
const int maxn = 4010 ;
const int maxm = 1000010;
int map[maxm];
int last[maxn];
int dp[maxn][maxn] ;
int num[maxn] ;
int main()
{
int n;
while(~scanf("%d" ,&n))
{
for(int i = 1;i <= n;i++)
scanf("%d" ,&num[i]) ;
int len = 1;
memset(map, 0 ,sizeof(map));
for(int i = 1;i <= n;i++)
if(!map[num[i]])
map[num[i]] = len++ ;
memset(dp , 0 ,sizeof(dp)) ;
int ans = 1;
last[map[num[1]]] = 1;
for(int i = 1;i <= len;i++)
dp[1][i] = 1;
for(int i = 2;i <= n;i++)
{
for(int j = 1;j < len;j++)
{
dp[i][j] = dp[last[j]][map[num[i]]] + 1;
ans = max(dp[i][j] , ans) ;
}
last[map[num[i]]] = i;
}
printf("%d\n",ans) ;
}
}
0 0
- Codeforces Round #156 (Div. 1)A dp
- Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)
- Codeforces Round #302 (Div. 1) 543A Writing Code(dp)
- Codeforces Round #363 (Div. 1) A. Vacations(dp)
- Codeforces Round #336 (Div. 1)A. Chain Reaction(DP)
- Codeforces Round #260 (Div. 1) 455 A. Boredom (DP)
- 【dp】Codeforces Round #110 (Div. 1) C
- Codeforces Round #144 (Div. 1) B dp
- Codeforces Round #162 (Div. 1) B dp
- Codeforces Round #260 (Div. 2)455A - Boredom (DP)
- Codeforces Round #344 (Div. 2) 631A Interview (DP)
- Codeforces Round #396 (Div. 2) A---C 暴力+dp
- Codeforces Round #202 (Div. 1) A. Mafia
- Codeforces Round #212 (Div. 1) <A>
- Codeforces Round #215 (Div. 1) <A-B>
- Codeforces Round #232 (Div. 1) <A>
- Codeforces Round #233 (Div. 1) <A>
- Codeforces Round #239 (Div. 1)(A,B)
- Codeforces Round #249 (Div. 2)C. Cardiogram
- JAVA 反射
- 把一个含有N个元素的数组循环右移K位
- commons-fileupload-1.3.1在不同开发环境得到的结果不同,晕啊
- 如何使用eclipse打包
- Codeforces Round #156 (Div. 1)A dp
- 关于Java Label里设置图片的若干问题
- 那些年我们遗忘的数学符号
- 二叉树详解 binary tree && binary search tree
- python之分析decode、encode、unicode编码转换为汉字
- PHP mailer邮件发送
- 二叉查找树
- C#第三次作业:Excel数据读取 及 HTML文件初步
- VBA第1课 对象的赋值