CodeForces 256A (dp)
来源:互联网 发布:淘宝网游戏币商城 编辑:程序博客网 时间:2024/05/21 10:43
Gena loves sequences of numbers. Recently, he has discovered a new type of sequences which he called an almost arithmetical progression. A sequence is an almost arithmetical progression, if its elements can be represented as:
- a1 = p, where p is some integer;
- ai = ai - 1 + ( - 1)i + 1·q (i > 1), where q is some integer.
Right now Gena has a piece of paper with sequence b, consisting of n integers. Help Gena, find there the longest subsequence of integers that is an almost arithmetical progression.
Sequence s1, s2, ..., sk is a subsequence of sequence b1, b2, ..., bn, if there is such increasing sequence of indexesi1, i2, ..., ik (1 ≤ i1 < i2 < ... < ik ≤ n), that bij = sj. In other words, sequence s can be obtained from b by crossing out some elements.
The first line contains integer n (1 ≤ n ≤ 4000). The next line contains n integers b1, b2, ..., bn (1 ≤ bi ≤ 106).
Print a single integer — the length of the required longest subsequence.
23 5
2
410 20 10 30
3
In the first test the sequence actually is the suitable subsequence.
In the second test the following subsequence fits: 10, 20, 10.
题意:从给定的有序的序列中找最多的p,q,p,q.
dp[i][j]:代表在第 i 个数前一个数是 j 的情况下的最多值,
则:
dp[i][j]=dp[j][pre] + 1,
#include<cstdio>#include<stdlib.h>#include<string.h>#include<string>#include<map>#include<cmath>#include<iostream>#include <queue>#include <stack>#include<algorithm>#include<set>using namespace std;#define INF 1e8#define eps 1e-8#define LL long long #define maxn 100105#define mod 1000000009 int n,a[4004],dp[4004][4004];int main(){while(scanf("%d",&n)==1){int ans=-1;for(int i=1;i<=n;i++){scanf("%d",&a[i]);int pre=0;for(int j=0;j<i;j++){dp[i][j]=dp[j][pre]+1;if(a[i]==a[j]) pre=j;ans=max(ans,dp[i][j]);}}printf("%d\n",ans);}return 0;}/*810 10 20 30 20 10 20 40*/
- CodeForces 256A (dp)
- codeforces 666A (DP)
- Codeforces 256A Almost Arithmetical Progression【dp】
- CodeForces 543A Writing Code(DP)
- CodeForces 607 A. Chain Reaction(dp)
- CodeForces 666A Reberland Linguistics(DP)
- Codeforces 698A. Vacations (简单DP)
- CodeForces 698 A. Vacations(dp)
- CodeForces 702A Maximum Increase (DP)
- 【CodeForces 455A】Boredom(dp)
- codeforces 788-A. Functions again(dp)
- Codeforces 846 A Curriculum Vitae(dp)
- codeforces 154 A DP
- Codeforces 607A dp
- codeforces 455A Boredom dp
- 【dp】 codeforces 455A Boredom
- Codeforces 455A Boredom (dp)
- CodeForces 455A Boredom (dp)
- 用boost::signal实现Observer模式
- LeetCode OJ算法题(二十八):Divide Two Integers
- javascript入门一:变量类型转换
- image打包规则
- poj 1157(SGU 104) 动态规划(花瓶插花)
- CodeForces 256A (dp)
- hdu1040 As Easy As A+B
- python学习1(输入/输出函数学习)
- TCP的CLOSE_WAIT状态
- 智能家居通用管理平台(四) - 进程间通信
- PHP实现的连贯操作、链式操作实例
- BOJ 437 大家一起点外卖
- 不同方式遍历Map集合
- delphi指针问题求解!!