您的位置:首页 > 其它

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

2017-10-19 20:30 183 查看
这个题首先要知道是求最大连续上升子序列的问题

然后找到这个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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  算法 数据 科技