• P1233 木棍加工


      我是想写写dp来着……所以我查了标签是dp的题。

      在做了三道蓝题之后,蒟蒻的我想做一道简单点的题恢复自信qwq……

      于是,这道题,我怎么也下过不出转移方程……但是我忽然发现,这道题根本就不用dp!贪心 + 排序即可!

      因为我们一定是要时间  < n 的,所以我们就算最后什么也没找到,也不会比 n 更差,那么我们先按照其中一个值排序,如果想要有比n更好的解,就一定要按照这个顺序去找!

      那么就等价于,我们就可以只看其中一个值就行!

      owo

      于是这道题就变成了排序,我们想要最少的下降序列,那么就是求最长的上升(严格上升)序列!

      不懂题解里的大神都是怎么想的qwq……

      下面贴代码;

    #include<cstdio>
    #include<algorithm>
    #include<iostream>
    using namespace std;
    #define maxn 5500
    struct node
    {
        int l,r;
    } a[maxn];
    int n;
    bool cmp(node x,node y)
    {
        return x.l>y.l;
    }
    int main()
    {
        scanf("%d",&n);
        for(int i=1;i<=n;i++)
        scanf("%d%d",&a[i].l,&a[i].r);
        sort(a+1,a+n+1,cmp);
        int cnt=0;
        int b[maxn],c[maxn];
        for(int i=1;i<=n;i++)
        b[i]=a[i].r;
        int len=1;
        c[1]=b[1];
        for(int i=2;i<=n;i++)
        {
            if(b[i]>c[len])
            {
                c[++len]=b[i];
                continue;
            }
            int p=lower_bound(c+1,c+1+len,b[i])-c;
            c[p]=b[i];
        }
        printf("%d",len);
        return 0;
    }
  • 相关阅读:
    C语言的灵魂(函数)
    GO语言测试题
    gRPC的发布订阅模式
    gRPC 介绍和简单实现
    RPC与Protobuf(五)
    RPC和Protubuf(四)
    RPC与Protobuf(三)
    JS立即执行函数的几种写法
    如何写出让人看了恶心的代码
    记录几个前端必备的库/框架
  • 原文地址:https://www.cnblogs.com/popo-black-cat/p/10338502.html
Copyright © 2020-2023  润新知