PTA 7-2 列车调度(25 分)

这个题首先要知道是求最大连续上升子序列的问题

然后找到这个DP问题的解决方法就好了

大概你作为一个山东科技大学的学生肯定会做

直接上代码惹

#include <bits/stdc++.h>
#define MAX 100000+10
#define INF 100000000
using namespace std;
int a[MAX],c[MAX],len;
int main()
{
    int n,j;
    while(scanf("%d",&n)!=EOF)
    {
        for(int i=0; i<n; i++)
            scanf("%d",&a[i]);
        len=0;
        c[0]=-INF;
        for(int i=0; i<n; i++)
        {

            if(a[i]>c[len]) j=++len;
            else j= lower_bound(c,c+len,a[i]) - c;
            c[j]=a[i];
        }
        printf("%d\n",len);
    }
}


猜你喜欢

转载自blog.csdn.net/h201601060805/article/details/78289088