首页 > 其他 > 详细

luogu P1020 导弹拦截

时间:2019-01-19 10:32:53      阅读:202      评论:0      收藏:0      [点我收藏+]

emmmm

哇200分

好快乐

技术分享图片

emmm

它为什么是黄题???

第一问很好想,就是最长不上升子序列

第二问也同样,最长上升子序列

嗯看代码吧

#include<cstdio>
#include<algorithm>
using namespace std;
#define maxn 100010

int l1[maxn],l2[maxn],a[maxn];

int cmp(int x,int y) {
    return x > y;
}

int main() {
    int cnt = 1;
    while(scanf("%d",&a[cnt]) != EOF) {
        cnt++;
    }
    cnt--;//要减一个(因为这个qq姐卡了好久www
    int len1 = 1;
    int len2 = 1;
    l1[1] = l2[1] = a[1];
    for(int i = 2; i <= cnt; i++) {
        if(a[i] <= l1[len1])
            l1[++len1] = a[i];
        else {
            int u = upper_bound(l1 + 1,l1 + len1 + 1,a[i],cmp) - l1;//uppet_bound要用一个cmp定义,或者greater<int>也可以
            l1[u] = a[i];
        }
        if(a[i] > l2[len2])
            l2[++len2] = a[i];
        else {
            int l = lower_bound(l2 + 1,l2 + len2 + 1,a[i]) - l2;//stl大法好!
            l2[l] = a[i];
        }
    }
    printf("%d\n%d",len1,len2);
    return 0;
}

我写的好草率啊

就酱吧www

 

luogu P1020 导弹拦截

原文:https://www.cnblogs.com/sevenyuanluo/p/10290556.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!