1715: 序列变换(LIS变形)
1715: 序列变换
时间限制: 1 Sec 内存限制: 128 MB
[提交][状态][讨论版]
题目描述
我们有一个数列A1,A2…An,你现在要求修改数量最少的元素,使得这个数列严格递增。其中无论是修改前还是修改后,每个元素都必须是整数。
请输出最少需要修改多少个元素。
输入
第一行输入一个N(1≤N≤10e5),表示数列的长度
第二行输入N个数A1,A2,…,An。
每一个数列中的元素都是正整数而且不超过10e6。
输出
输出最少需要修改多少个元素
样例输入
3
2 5 4
样例输出
1
提示
来源
/*
最长上升子序列的变形。
每个元素都必须为整数(正,负都行)
对于:
9
2 2 3 3 4 4 5 5 6
ans = 7
---->-1 2 3 4 5 6 7 8 9
当aj > ai 时,i < j,i与j之间的元素要也要严格递增,得满足这个条件:
aj-ai >= j-i
整理上式:
aj - j >= ai - i
所以可以对原序列预处理一下,nowValue = oldValue-index
然后本题数据比较大不呢之间用O(n^2)解法,只能用基于贪心的O(nlogn)解法
*/
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5+5;
int a[maxn];
int st[maxn];
int main()
{ios::sync_with_stdio(false);int n;cin>>n;for(int i = 0; i < n; i++){cin>>a[i];a[i] = a[i] - i;}int t = 0;st[t] = -(1<<30);for(int i = 0; i < n; i++){// a[i] - a[j] >= i-j;-->a[i]-i >= a[j]-j,i>jif(a[i] >= st[t]){st[++t] = a[i];}else{//可以直接用upper_bound,但是我更喜欢自己写二分// int pos = upper_bound(st,st+t+1,a[i])-st;//st[pos] = a[i];int left = 1, right = t;while(left <= right){int mid = (left+right)>>1;if(a[i] >= st[mid]){left = mid + 1;}else{right = mid - 1;}}st[left] = a[i];}}cout<<n-t<<endl;return 0;
}
1715: 序列变换(LIS变形)相关推荐
- hdu 5256 序列变换 (LIS变形)
序列变换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 序列变换(Lis变形)
序列变换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 杭电5256 序列变换(LIS)
序列变换 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 百度之星1005 序列变换(lis)
序列变换 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://bestcoder.hdu.edu.cn/contests/contest_show ...
- UVA 1471 Defense Lines (LIS变形)
题意:删除原序列中的一段连续子序列,使得剩下的序列中存在一段最长连续子序列. 题解:LIS变形 我们用l[i]l[i]l[i]和r[i]r[i]r[i]记录往右以iii结尾和往左以iii开头的最长连续 ...
- 二分搜索 2015百度之星初赛1 HDOJ 5248 序列变换
题目传送门 1 /* 2 二分搜索:在0-1e6的范围找到最小的max (ai - bi),也就是使得p + 1 <= a[i] + c or a[i] - c 3 比赛时以为是贪心,榨干智商也 ...
- 豪斯荷尔德变换及变形QR算法对矩阵进行奇异值分解VB算法
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- hdu5256序列变换(非递减子序列)
题意(中文直接粘吧) 序列变换 Problem Description 我们有一个数列A1,A2...An,你现在要求修改数量最少的元素,使得这个数列严格递增.其中无论是修改前还是修改后,每个 ...
- hdu5248序列变换(二分+贪心)基础题
题意(中文的直接粘题意吧) ...
最新文章
- 图灵奖得主Jeff Ullman直言:机器学习不是数据科学的全部!统计学也不是
- 答疑 | 算法岗和开发岗有什么区别?
- [转]ASP.NET 核心模块配置参考
- 在eclipse中创建web项目(非myeclipse)
- 自动化测试特定区域滑动_自动化用户特定实体的访问控制
- 构造函数必须没有代码
- C语言缓冲文件系统和非缓冲文件系统
- 大众点评被合并至美团? 官方回应:不存在这种可能性
- Win7系统经常报错怎样解决?
- 伺服驱动器cn1引脚定义_台达A2 A3系列伺服CN1接线对照表
- java最长公共子串_查找字符串最长公共子串
- pause 和 title
- just for save
- 1919: kirito's 星爆气流斩 多重背包
- 新手学做网站的建议教程
- 137、易燃固体的火灾危险性
- pdf 能打开但不能打印复制
- web之Cookies
- 马宁伟-20年工作经验谈-3-十年磨一剑
- [win10] [mac] 双系统下丢失mac OS X系统引导的修复方法
热门文章
- 手机电脑的芯片主要是由_苹果的自研电脑芯片终于来了!你看好么?
- java 传递函数_java传递函数参数(值传递)
- zeppelin安装使用
- 干货!隐马尔科夫模型
- android 阻尼动画,Android拉伸阻尼效果实现
- php网页论坛制作教程,PHP开发 小型论坛教程之登录HTML页面
- aspectj表达式如何书写_化学平衡常数的表达式书写
- Linux安装weblogic方式,Linux下weblogic安装图解
- java服务自动降级方案_在京东我们是如何做服务降级的
- String对象的intern()