美文网首页
HDU-5772 贪心策略+LIS [2016多校]

HDU-5772 贪心策略+LIS [2016多校]

作者: 瓜炒茄 | 来源:发表于2016-08-09 22:52 被阅读0次

给定大小为N的序列,当某个元素为0时,可将其替换成任意整数;问能够得到的最长递增子序列长度。

贪心策略基于这样一个性质:
最优子序列是包含了所有原来为0的元素的子序列。
证明可以用反证法,设一个最长子序列中不包含某个0元素,那么我们必然可以:

  1. 用这个0元素替换它前面或者后面的已选非0元素,子序列长度不变;
  2. 子序列增加这个0元素,子序列长度变长;

无论如何都不会比原来的差。

所以A[i], A[j] (i<j) 选为子序列中连续元素的条件是:他们的差值必须大于其之间的0元素个数。

即:A[j]-A[i]>SUM[j]-SUM[i] (SUM[i]表示i号元素之前有多少个0元素)
转化一下即是:A[j]-SUM[j]>A[i]-SUM[i]
由以上这个式子,我们可以直接将所有A[i]修改为A[i]-SUM[i]之后,直接计算非0元素的LIS长度并加上0元素个数即可,非常妙。

#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdio>
using namespace std;
#define N 1050
int d[N];
int main(){
    int t,kase=0;
    cin>>t;
    while(t--){
        int n,zeros=0;
        cin>>n;
        vector<int> a;
        for (int i=0;i<n;i++){
            int x;
            cin>>x;
            if (x) a.push_back(x-zeros);
            else zeros++;
        }

        int cnt = 0;
        for (int i=0;i<a.size();i++){
            if (!cnt || a[i]>d[cnt-1]) d[cnt++] = a[i];
            int pos = lower_bound(d, d+cnt, a[i]) - d;
            d[pos] = a[i];
        }
        printf("Case #%d: %d\n", ++kase, cnt+zeros);
    }

    return 0;
}

相关文章

  • HDU-5772 贪心策略+LIS [2016多校]

    给定大小为N的序列,当某个元素为0时,可将其替换成任意整数;问能够得到的最长递增子序列长度。 贪心策略基于这样一个...

  • 数据结构第二季 Day16 贪心、分治

    一、贪心(Greedy) 1、什么是贪心策略?经典应用有哪些(至少说两个)? 贪心策略,也称为贪婪策略。 每一步都...

  • 算法策略的总结

    策略是面向问题的,算法是面向实现的。 一、不同算法策略特点小结 1、贪心策略 贪心策略一方面是求解过程比较简单的...

  • 26-贪心(Greedy)

    贪心(Greedy) 贪心策略:也称为贪婪差略 使用贪心策略,在执行每一步的过程中,都会选择当前状态下的最优解(局...

  • 【恋上数据结构与算法二】(六)贪心(Greedy)

    贪心(Greedy) ◼ 贪心策略,也称为贪婪策略每一步都采取当前状态下最优的选择(局部最优解),从而希望推导出全...

  • (Greedy)贪心策略

    贪心策略是一种每一步都采取当前状态下最优的选择(局部最优解),从而希望推导出全局最优解的一种策略。在我们之前文章里...

  • 算法--策略-贪心分治

    贪心 贪心策略, 也叫作贪婪策略 每一步都采取当前状态下最优解, 从而推导出全局最优解 应用, 哈夫曼树, 最小生...

  • 贪心算法

    算法解释 顾名思义, 贪心算法或贪心思想采用贪心的策略,保证每次操作都是局部最优的,从而使最后得到的结果是全局最优...

  • 2021-02-01

    贪心 (1)简单贪心 贪心法是求解一类最优化问题的方法,它总是考虑在当前状态下局部优化(或较优)的策略,来使全局的...

  • 算法基础--贪心策略

    本文主要作为自己的学习笔记,并不具备过多的指导意义。 概述 贪心算法通常用来求解最优问题 由局部最优解到整体最优解...

网友评论

      本文标题:HDU-5772 贪心策略+LIS [2016多校]

      本文链接:https://www.haomeiwen.com/subject/zzvdsttx.html