hdu5256序列严格递增
来源:互联网 发布:用友u8安装数据库 编辑:程序博客网 时间:2024/05/23 21:37
题意:一个数列,a1,a2,a3,a4,---,an,需要最少修改多少个元素,使得这个序列严格递增?
a[i]-i 非递减序列 因为a[i]<a[i+1],且a[i],a[i+1]都是整数,所以有a[i+1]-1>=a[i],整理得a[i+1]-(i+1)>=a[i]-i。令b[i]=a[i]-i。则可以求出b[i]的最长不下降子序列的长度len,最后用n-len即为需要改变的最少的元素个数。
#include <iostream>#include<stdio.h>#include<string.h>#include<vector>#include<algorithm>using namespace std;const int N=1000005; int T,n,m; int a[N]; int b[N]; int cas=1; int solve(int n){ int len=1; b[0]=a[0]; for(int i=1;i<n;i++){ if(a[i]>=b[len-1]) b[len++]=a[i]; else{ int pos=upper_bound(b,b+len,a[i])-b; b[pos]=a[i]; } } return len; }int main(){#ifndef ONLINE_JUDGE freopen("aaa","r",stdin);#endif scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<n;i++) a[i]-=i; printf("Case #%d:\n%d\n",cas++,n-solve(n)); } return 0;}
0 0
- hdu5256序列严格递增
- hdu5256 序列变换 最长递增子序列
- 1020 -- 严格递增序列
- HDU5256 序列变换(LIS求严格上升子序列)
- POJ1239 dp (严格递增子序列)
- HDU5256: 序列变换
- hdu5256序列变幻
- hdu5256 序列变换
- hdu5256: 序列变换
- hdu5256【序列变换】【LIS】
- 求一个序列中的最长严格递增子序列。
- 求数组的最长严格递增子序列
- UVA 10131Is Bigger Smarter? 【严格单调递增子序列】
- 求一个数组的最长严格递增子序列
- hdu5256 序列变换 dp LIS
- 【LIS】【严格递增和非严格递增】
- 严格递增矩阵
- hdu5256 序列变换(LIS模型)
- iOS OC06.2_字典
- 如何父元素下面的某个子元素的具体值
- linux中Cron定时任务系统命令详解
- 排序算法总结&&java代码实现
- 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第31讲:PHP面向对象程序设计(成员方法)
- hdu5256序列严格递增
- 网络流模板
- 记录wcslen,strlen,sizeof,_coutof等的用法和区别
- http协议详解
- hdu 1829 A Bug's Life
- 程序在内存中的分布
- iOS开发学习笔记三 —— Reveal
- 函数式、响应式编程 - ReactiveCocoa 快速入门
- 解决POI读取Excel内存溢出的问题