zoukankan      html  css  js  c++  java
  • [CF269B] Greenhouse Effect

    给出 N 个植物,每个植物都属于一个品种,共计 m 个品种,分落在不同的位置上(在一个数轴上,而且数轴是无限长度的),保证读入的位置是按照升序读入的。

    现在我们可以进行一个操作:取任意一个位置上的植物,移动到任意一个没有植物的位子上去。

    问我们最少进行多少次操作,能够使得从左到右,是按照品种升序排列的(1 ~ m)(单调不降),而且每种植物都相邻。

    Solution

    求一下最长非严格上升子序列即可

    #include <bits/stdc++.h>
    using namespace std;
    
    int n,m,a[5005],f[5005];
    double t;
    
    int main() {
        cin>>n>>m;
        for(int i=1;i<=n;i++) {
            cin>>a[i]>>t;
        }
        int ans=0;
        for(int i=1;i<=n;i++) {
            f[i]=1;
            for(int j=1;j<i;j++) {
                if(a[j]<=a[i]) f[i]=max(f[i], f[j]+1);
            }
            ans=max(ans,f[i]);
        }
        cout<<n-ans;
    }
    
  • 相关阅读:
    线性基学习笔记
    内网靶机-抓取票据
    域渗透
    flex元素的使用
    webpack 基本使用
    ES模块的导入
    作用域插槽
    具名插槽的使用
    slot插槽的基本使用
    vue中父子组件的访问方式
  • 原文地址:https://www.cnblogs.com/mollnn/p/12275483.html
Copyright © 2011-2022 走看看