链接:P3902

-----------------------------------------

这道题就是最长上升子序列的模板题,因为我们修改的时候可没说不能改成小数(暴力)

----------------------------------------

最长上升子序列有很多求法,这道题dp是不行的,TLE。

就要用nlogn的二分算法

---------------------------------------

这个算法是这样的,建立一个数组了,low,其中low[i]表示长度为i的上升子序列的结尾最小值

来考虑维护它,如果一个新数a[i]比low[最后一个]大,我们就low[++low的长度]=a[i];

else,考虑一下,如果结尾的元素越小,他的潜力就越大,所以贪心的考虑一下,为什么不让它去给low增加点潜力呢?

找到第一个大于等于a[i]的low,并且更新它。

这样就可以在nlogn内求出了

----------------------------------------

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=;
const int inf=0x7f7f7f7f;
int n,ans;
long long low[maxn],a[maxn];
int main(){ cin>>n;
for(int i=;i<=n;++i)
{
cin>>a[i];
low[i]=inf;
}
low[]=a[];
ans=;
for(int i=;i<=n;++i){
if(a[i]>low[ans])
low[++ans]=a[i];
else
low[lower_bound(low+,low+ans+,a[i])-low]=a[i];
}
cout<<n-ans;
return ;
}

Ac

P3902 递增的更多相关文章

  1. 洛谷 P3902 递增

    P3902 递增 题目描述 现有数列A_1,A_2,\cdots,A_NA1​,A2​,⋯,AN​,修改最少的数字,使得数列严格单调递增. 输入输出格式 输入格式: 第1 行,1 个整数N 第2 行, ...

  2. JDOJ 2157 Increasing

    洛谷 P3902 递增 洛谷传送门 JDOJ 2157: Increasing JDOJ传送门 Description 数列A1,A2,--,AN,修改最少的数字,使得数列严格单调递增. Input ...

  3. 【树状数组】【P3902】 递增

    传送门 Description 给你一个长度为\(n\)的整数数列,要求修改最少的数字使得数列单调递增 Input 第一行为\(n\) 第二行\(n\)个数代表数列 Output 输出一行代表答案 H ...

  4. [LeetCode] Increasing Triplet Subsequence 递增的三元子序列

    Given an unsorted array return whether an increasing subsequence of length 3 exists or not in the ar ...

  5. [LeetCode] Longest Increasing Path in a Matrix 矩阵中的最长递增路径

    Given an integer matrix, find the length of the longest increasing path. From each cell, you can eit ...

  6. [LeetCode] Longest Increasing Subsequence 最长递增子序列

    Given an unsorted array of integers, find the length of longest increasing subsequence. For example, ...

  7. SQLSERVER如何使用递增排序的GUID做主键

    场景: 产品表数据量较大想用Guid做表的主键,并在此字段上建立聚簇索引. 因为Guid是随机生成的,生成的值大小是不确定的,每次生成的数可能很大,也可能很小.这样会影响插入的效率 1.NEWSEQU ...

  8. 51nod1134(最长递增子序列)

    题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1134 题意: 中文题诶~ 思路: 直接暴力的话时间复杂度为 ...

  9. [LintCode] Longest Increasing Subsequence 最长递增子序列

    Given a sequence of integers, find the longest increasing subsequence (LIS). You code should return ...

随机推荐

  1. pymysql连接提示format: a number is required, not str

    最近想随手写一个简单的员工管理系统,第一次使用python连接数据库,在这个过程中就遇到了一些问题,遂记录 遇到问题习惯性百度一下,很多教程都不适合新手,有些还不知道是不是瞎写的,所以我觉得有必要自己 ...

  2. jmeter性能测试2:基础功能介绍

    对于英语不好的同学建议先改为简体中文再进行使用 1.添加->threads->线程组(控制总体并发)            线程数:虚拟用户数.一个虚拟用户占用一个进程或线程        ...

  3. 死磕java(4)

    数组 public void int4() {  int[] int2 = {1,2,3,4};  System.out.print(int2[2]); } 输出:3 另一种数组的初始化 public ...

  4. 痞子衡嵌入式:Ethos-U55,ARM首款面向Cortex-M的microNPU

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是ARM Ethos-U55. ARM 前几天刚发布了 Cortex-M 家族最新一款内核 - Cortex-M55 以及首款面向 Cor ...

  5. 手把手教你Dubbo与SpringBoot常用两种方式整合

    一.Dubbo整合SpringBoot的方式(1) 1)直奔主题,方式一: pom.xml中引入dubbo-starter依赖,在application.properties配置属性,使用@Servi ...

  6. 01_TypeScript介绍安装

    1.介绍 TypeScript 是由微软开发得一款开源得编程语言:是JavaScript得超级,遵循ES6,ES5规范:更适合开发大型企业项目. 2.安装 npm install -g typesri ...

  7. pytorch ---神经网络语言模型 NNLM 《A Neural Probabilistic Language Model》

    论文地址:http://www.iro.umontreal.ca/~vincentp/Publications/lm_jmlr.pdf 论文给出了NNLM的框架图: 针对论文,实现代码如下: # -* ...

  8. 解决pycharm打开html页面一直刷新

    顺序——> File ——>Project:项目名——>project Structure 右侧的 + Add ContentRoot下面只保留本项目路径,其他全删了 方法2(推荐) ...

  9. Python字符串字母大小写变换

    说明: 字符串就是一系列字符,在Python中用引号括起来的都是字符串,引号可以是单引号,也可以是双引号,比如:“This is a book.”  ‘This is an apple.’ 接下来简单 ...

  10. DotNet 源码学习——QUEUE

    1.Queue声明创建对象.(Queue为泛型对象.) public class Queue<T> :IEnumerable<T>,System.Collections.ICo ...