51nod 修改数组
第1行:一个数N表示序列的长度(1 <= N <= 100000)。 第2 - N + 1行:每行1个数,对应数组元素。(0 <= A[i] <= 10^9)
输出最少需要修改几个数使得整个数组是严格递增的。
5 1 2 2 3 4
3 分析:a[i]-i<=a[j]-j(i<j),并且a[i]-i>=0,在此基础上对他求最长不降子序列即可;代码:
#include <iostream> #include <cstdio> #include <cstdlib> #include <cmath> #include <algorithm> #include <climits> #include <cstring> #include <string> #include <set> #include <map> #include <queue> #include <stack> #include <vector> #include <list> #define rep(i,m,n) for(i=m;i<=n;i++) #define rsp(it,s) for(set<int>::iterator it=s.begin();it!=s.end();it++) #define mod 1000000007 #define inf 0x3f3f3f3f #define vi vector<int> #define pb push_back #define mp make_pair #define fi first #define se second #define ll long long #define pi acos(-1.0) #define pii pair<int,int> #define Lson L, mid, rt<<1 #define Rson mid+1, R, rt<<1|1 const int maxn=1e5+10; using namespace std; ll gcd(ll p,ll q){return q==0?p:gcd(q,p%q);} ll qpow(ll p,ll q){ll f=1;while(q){if(q&1)f=f*p;p=p*p;q>>=1;}return f;} int n,m,k,t; multiset<int>p; multiset<int>::iterator it; void add(int x) {if(x<0)return;it=p.upper_bound(x);if(it!=p.end())p.erase(it);p.insert(x); } int main() {int i,j;scanf("%d",&n);rep(i,1,n)scanf("%d",&j),add(j-i);printf("%d\n",n-p.size());//system("Pause");return 0; }
转载于:https://www.cnblogs.com/dyzll/p/5880419.html
51nod 修改数组相关推荐
- 51Nod 1294 修改数组 —— LIS
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1294 1294 修改数组 题目来源: HackerRank ...
- C++ 笔记(08)— 数组(数组的声明、初始化、访问及修改数组元素)
数组具有如下特点: 数组是一系列元素: 数组中所有元素的类型都相同: 所有的数组都是由连续的内存位置组成.最低的地址对应第一个元素,最高的地址对应最后一个元素. 1. 一维数组 1.1 声明数组 要声 ...
- 修改数组的值和多维数组排序
foreach($ret as $key => $value) { //将数组元素中为空地补0,且添加sum元素的计算,注意修改数组的值,需要$key定位到是数组的哪一个地方需要修改,而不能简单 ...
- 51nod 1270 数组的最大代价
1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个元素A1, A2......AN.数组B包 ...
- 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的数组类型,被广泛应用于 画像系统 , 标签系统. 在一些业务重建中,对数组内容的定义往往包含了 ...
最新文章
- 《课程的反思与重建--我们需要什么样的课程观》 心得体会
- 成功解决pandas读取文件中不读取第一索引列
- 2013\Province_Java_B\1.世纪末的星期
- 视频传输面临的挑战和解决之道
- export LD_LIBRARY_PATH 的使用
- 【C语言】数组名作函数参数完成数据的升序排列
- intellij Find Usage 查找符号使用快捷键alt + f7在ubuntu下无法使用的解决方法
- [转载]JS语法字典
- 运行vue遇到的坑(续更
- 简单工厂模式(静态工厂方法模式)
- mysql 怎么加读锁_MYSQL—加写锁,加读锁,解锁
- html表格边框线变为1条线,HTML表格边框设为单实线
- 【安全知识分享】重磅|雨季安全生产教育.pptx(附下载)
- ITK入门教程(12)点集之得到存储的点
- 【java_设计模式】建造者模式
- SG3525频率和占空比参数的选取
- openharmony容器组件之Refresh
- python 怎么将数字转大写_Python将数字转化为中文大写的实例代码
- 17种数据可视化图表,有哪些适用场景?
- 安卓开发环境搭建和手动打包总结
热门文章
- 奠定了整个计算机科学的基础是什么,冯 诺依曼对计算机科学发展所作的贡献是什么...
- GCC中的分支预测(likely和unlikey)
- 【深度学习入门到精通系列】目标检测评估之P-R曲线深入理解
- 【编译原理】关于NFA和DFA-集合定义的探索
- python【蓝桥杯vip练习题库】ALGO-50 数组查找及替换
- 怎么升级浏览器_下载的chrome无法访问此网站怎么解决
- 如何做好网络推广浅析新手对网站SEO内链该如何优化?
- 专业网络推广浅析单页面网站如何高效做SEO优化?
- 网站排名在首位后,为什么还要继续做SEO?
- 网络推广外包——网络推广外包指出新站上线前一定要做好自我检测