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

来源:互联网 发布:安卓锁屏软件 编辑:程序博客网 时间:2024/05/21 07:51

原来上升的序列需要相应长度的轨道

转化一下也就是求最长上升子序列的长度,有多种方法,这里的是复杂度比较低的 O(nlgn)的

(注:博客作为交流使用,切勿抄袭应付作业)


#include<bits/stdc++.h>using namespace std;const int maxn = 100000 + 7, INF = 0x7f7f7f7f;int n;int a[maxn], b[maxn];void init() {    scanf("%d", &n);    for(int i = 0; i < n; ++i)        scanf("%d", &a[i]);}void solve() {    memset(b, INF, (n+1)*sizeof(int));    for(int i = 0; i < n; ++i)        *lower_bound(b, b+n+1, a[i]) = a[i];    int ans = lower_bound(b, b+n+1, INF) - b;    cout << ans << endl;}int main() {    init();    solve();    return 0;}


原创粉丝点击