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

来源:互联网 发布:2017年时代网络诗人奖 编辑:程序博客网 时间:2024/06/04 18:29

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

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

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

直接上代码惹

#include <bits/stdc++.h>#define MAX 100000+10#define INF 100000000using 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);    }}