51nod 1294 修改数组
若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 修改数组相关推荐
- 51Nod 1294 修改数组 —— LIS
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1294 1294 修改数组 题目来源: HackerRank ...
- 51nod 修改数组
修改数组 给出一个整数数组A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数.问最少需要修改几个数? Input 第1行:一个数N表示序列的长度(1 <= N ...
- C++ 笔记(08)— 数组(数组的声明、初始化、访问及修改数组元素)
数组具有如下特点: 数组是一系列元素: 数组中所有元素的类型都相同: 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址对应最后一个元素. 1. 一维数组 1.1 声明数组 要声 ...
- 修改数组的值和多维数组排序
foreach($ret as $key => $value) { //将数组元素中为空地补0,且添加sum元素的计算,注意修改数组的值,需要$key定位到是数组的哪一个地方需要修改,而不能简单 ...
- php foreach 修改数组,php如何使用foreach修改数组
php foreach修改数组的方法:首先创建一个PHP示例文件:然后通过foreach语句"foreach($array as $k => $v){$v = 1;}"修改指 ...
- B10_NumPy数组操作、修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除
NumPy数组操作 Numpy 中包含了一些函数用于处理数组,大概可分为以下几类: 修改数组形状 翻转数组 修改数组维度 连接数组 分割数组 数组元素的添加与删除 修改数组形状 函数 描述 resha ...
- B09_NumPy迭代数组(控制遍历顺序,修改数组中元素的值,使用外部循环,广播迭代)
NumPy迭代数组 NumPy 迭代器对象 numpy.nditer 提供了一种灵活访问一个或者多个数组元素的方式. 迭代器最基本的任务的可以完成对数组元素的访问. 接下来我们使用arange()函数 ...
- jQuery修改数组$.map
$.map() :用于修改数组 第一个参数是哪个对象 第二个参数是修改函数(会自己遍历所有的) $(function () { var arr = [ "a", "b&q ...
- PostgreSQL 多重含义数组检索与条件过滤 (标签1:属性, 标签n:属性) - 包括UPSERT操作如何修改数组、追加数组元素
摘要: 标签 PostgreSQL , 多重函数数组 , UDF索引 , 过滤 , 文本处理 背景 PG的数组类型,被广泛应用于 画像系统 , 标签系统. 在一些业务重建中,对数组内容的定义往往包含了 ...
- python3-numpy 数组操作--修改数组形状、翻转数组、修改数组维度、连接数组、分割数组、数组元素的添加与删除
1.修改数组形状 函数 描述 reshape 不改变数据的条件下修改形状 flat 数组元素迭代器 flatten 返回一份数组拷贝,对拷贝所做的修改不会影响原始数组 ravel 返回展开数组 1.1 ...
最新文章
- css hack *html,CSS Hack详解
- 【控制】多智体系统一致性基础知识
- 别人家的程序员是如何使用 Java 进行 Web 抓取的?
- react实现汉堡_利用 React 高阶组件实现一个面包屑导航
- 九大排序算法Java实现
- Android—View事件分发与View子类
- acs880 用户手册_华中数控、广州数控系统用户手册
- 2020年快手美妆行业数据价值报告
- 【Spring】一次线上@Transational事务注解未生效的原因探究
- 采用JAVA编写程序实现从文件读取操作
- Mybatis注解的方式,如何实现MySQL ,update后,返回更新后的值
- java 查找引用_java – Eclipse查找方法的引用
- 卧槽!jmeter 竟然这么牛逼,压测爽歪歪~
- 使用C语言创建顺序表
- 厦门理工学院计算机毕业要求,计算机教学中心-厦门理工学院教务处.PDF
- 若依ruoyi框架整合magic-api增删改查Demo
- word 目录 有一部分无无虚线,解决办法
- 最大公约数是啥意思_最大公约数是什么意思
- 台式电脑接路由器步骤_台式电脑怎么连接无线路由器 台式电脑无线路由器
- 免费分享一个最完美的英语学习素材 Englishpod