若a[i]-i(i从1开始)的值小于0,那么a[i]必须改变

若a[i]-i的值大于等于0,将a[i]-i存入新的数组中,求出新数组的最长非严格上升子序列,所得即最多的,不用改变的数。

#include<stdio.h>
#include<math.h>
#include<cstring>
#include<stack>
#include<iostream>
#include<algorithm>
#include<queue>
#define MAXSIZE 100005
#define LL long longusing namespace std;int main()
{int s[MAXSIZE],s1[MAXSIZE];memset(s,0,sizeof(s));memset(s1,0,sizeof(s1));int n,len,a,ans,maxn,top;len = 0;ans = 0;scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a);if(a-i >= 0){s[len++] = a-i;}else{ans++;}}maxn = 0;top = 0;if(len)s1[top++] = s[0];for(int i=1;i<len;i++){if(s[i] >= s1[top-1]){s1[top++] = s[i];}else{int pos = upper_bound(s1,s1+top,s[i]) - s1;s1[pos] = s[i];}}printf("%d\n",ans+len-top);return 0;
}

View Code

转载于:https://www.cnblogs.com/alan-W/p/8383523.html

51nod 1294 修改数组相关推荐

  1. 51Nod 1294 修改数组 —— LIS

    题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1294 1294 修改数组  题目来源: HackerRank ...

  2. 51nod 修改数组

    修改数组 给出一个整数数组A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数.问最少需要修改几个数? Input 第1行:一个数N表示序列的长度(1 <= N ...

  3. C++ 笔记(08)— 数组(数组的声明、初始化、访问及修改数组元素)

    数组具有如下特点: 数组是一系列元素: 数组中所有元素的类型都相同: 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址对应最后一个元素. 1. 一维数组 1.1 声明数组 要声 ...

  4. 修改数组的值和多维数组排序

    foreach($ret as $key => $value) { //将数组元素中为空地补0,且添加sum元素的计算,注意修改数组的值,需要$key定位到是数组的哪一个地方需要修改,而不能简单 ...

  5. php foreach 修改数组,php如何使用foreach修改数组

    php foreach修改数组的方法:首先创建一个PHP示例文件:然后通过foreach语句"foreach($array as $k => $v){$v = 1;}"修改指 ...

  6. B10_NumPy数组操作、修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除

    NumPy数组操作 Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 修改数组形状 函数 描述 resha ...

  7. B09_NumPy迭代数组(控制遍历顺序,修改数组中元素的值,使用外部循环,广播迭代)

    NumPy迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用arange()函数 ...

  8. jQuery修改数组$.map

    $.map() :用于修改数组 第一个参数是哪个对象 第二个参数是修改函数(会自己遍历所有的) $(function () { var arr = [ "a", "b&q ...

  9. PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素

    摘要: 标签 PostgreSQL , 多重函数数组 , UDF索引 , 过滤 , 文本处理 背景 PG的数组类型,被广泛应用于 画像系统 , 标签系统. 在一些业务重建中,对数组内容的定义往往包含了 ...

  10. python3-numpy 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除

    1.修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组 ravel 返回展开数组 1.1 ...

最新文章

  1. css hack *html,CSS Hack详解
  2. 【控制】多智体系统一致性基础知识
  3. 别人家的程序员是如何使用 Java 进行 Web 抓取的?
  4. react实现汉堡_利用 React 高阶组件实现一个面包屑导航
  5. 九大排序算法Java实现
  6. Android—View事件分发与View子类
  7. acs880 用户手册_华中数控、广州数控系统用户手册
  8. 2020年快手美妆行业数据价值报告
  9. 【Spring】一次线上@Transational事务注解未生效的原因探究
  10. 采用JAVA编写程序实现从文件读取操作
  11. Mybatis注解的方式,如何实现MySQL ,update后,返回更新后的值
  12. java 查找引用_java – Eclipse查找方法的引用
  13. 卧槽!jmeter 竟然这么牛逼,压测爽歪歪~
  14. 使用C语言创建顺序表
  15. 厦门理工学院计算机毕业要求,计算机教学中心-厦门理工学院教务处.PDF
  16. 若依ruoyi框架整合magic-api增删改查Demo
  17. word 目录 有一部分无无虚线,解决办法
  18. 最大公约数是啥意思_最大公约数是什么意思
  19. 台式电脑接路由器步骤_台式电脑怎么连接无线路由器 台式电脑无线路由器
  20. 免费分享一个最完美的英语学习素材 Englishpod

热门文章

  1. 手机论文查重软件哪个靠谱?
  2. 大数据时代的呼叫中心客服运营管理
  3. [LeetCode]Shortest Palindrome
  4. Guava库学习:学习Guava Cache(二)Guava caches(2)
  5. vmware硬件兼容官方查询地址
  6. NSString字符串处理
  7. poj 3026 Borg Maze
  8. LSI存储论坛:6Gb SAS让DAS焕发新活力?
  9. “广” “专”的抉择 -- 个人技术发展之我见!
  10. 判断Exe文件是否正在运行的函数