cf dp B. Maximum Submatrix 2

来源:互联网 发布:java 数字分割 编辑:程序博客网 时间:2024/06/05 07:30

链接:http://codeforces.com/problemset/problem/255/C

求为p,p-q,p,p-q.....这样的数列的最大长度

没有想出来方程,然后看了别人的方程是dp[i][j]=dp[last][i]+1

方程就不解释了,==弄那个last一直弄错了,wa了

看了代码才知道那个last怎么弄

代码:

#include <algorithm>#include <cstdio>#include <iostream>using namespace std;#define MAX 4001int map[MAX];int ans[MAX];int loc[1000005];int dp[MAX][MAX];int main(void){int n;cin >> n;int nmax = 0;for(int i = 1; i <= n;i++)cin >> map[i];for(int j = 1;j <= n;j++)for(int i = 0,last = 0;i < j;i++){dp[i][j]=dp[last][i]+1;if(map[i]==map[j])last = i;nmax = max(nmax,dp[i][j]);}cout << nmax;}
加油!继续dp!

0 0
原创粉丝点击