51nod 1294 修改数组 (LIS变形_DP)

原创 2015年11月17日 23:17:08


Input
第1行:一个数N表示序列的长度(1 <= N <= 100000)。
第2 - N + 1行:每行1个数,对应数组元素。(0 <= A[i] <= 10^9)
Output
输出最少需要修改几个数使得整个数组是严格递增的。
Input示例
5
1
2
2
3
4
Output示例
3


求LIS是用lower_bound(),而非严格递增用upper_bound()



#include<cstdio>
#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int maxn=100000+10;
const int inf=1e9+100;
int a[maxn],b[maxn],dp[maxn];
int main()
{
	
	int k,i,j,ans,n;
	scanf("%d",&n);
	for(i=0;i<n;i++) scanf("%d",&a[i]);
	k=0;ans=-0;
	for(i=0;i<n;i++) {
		if(a[i]<i+1) ans++;
		else b[k++]=a[i]-(i+1);
		dp[i]=inf;
	}
	for(i=0;i<k;i++) {
		*upper_bound(dp,dp+k,b[i])=b[i];
	}
	ans=ans+k-(lower_bound(dp,dp+k,inf)-dp);
	printf("%d\n",ans);
	return  0;
} 





版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/h1021456873/article/details/49895153

数组

本门课程是java基础课程之一,介绍数组的概念和使用。
  • 2017年01月30日 17:30

51nod 1294 修改数组

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

51NOD 1294 修改数组 【LIS】

传送门a[i]=a[i]-i 则不难发现 对a[i]中>=0的元素 求一遍单增子序列(非严格) 答案就=n-lis#include #include #define ll long long #d...
  • LuRiCheng
  • LuRiCheng
  • 2017-09-14 17:14:57
  • 101

51nod 1294 修改数组 dp

题意给出一个整数数组A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数。问最少需要修改几个数? n...
  • qq_33229466
  • qq_33229466
  • 2017-08-13 22:31:54
  • 86

[51nod 1294]修改数组

题目描述给出一个整数数组A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数。问最少需要修改几个数?做法对于i和j(i...
  • WerKeyTom_FTD
  • WerKeyTom_FTD
  • 2016-12-12 22:00:06
  • 218

【51Nod 1294】修改数组

Description给出一个整数数组A,你可以将任何一个数修改为任意一个正整数,最终使得整个数组是严格递增的且均为正整数。问最少需要修改几个数?Solution首先需要严格递增,而且要改成正整数。 ...
  • doyouseeman
  • doyouseeman
  • 2016-12-07 22:24:11
  • 561

51nod1294 修改数组(二分法)

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

【DP算法篇之初学】LIS\LCS\二维DP\带条件DP

最近参加2016华为软件精英挑战赛,题目也比较直接,就是求过定点的最短路。这题和以前练得不一样,感觉是不是要用DP(动态规划)。可是对于DP,算法,我还是啥都不懂,于是好好补补。 先是参考这篇博文...
  • woxiaohahaa
  • woxiaohahaa
  • 2016-03-14 20:57:44
  • 2651

51nod 1294 :修改数组 && HDU 5256:序列变换

1294 修改数组 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 160 难度:6级算法题  收藏  取消关注 给出一个整数数组...
  • u010885899
  • u010885899
  • 2015-10-14 11:24:07
  • 570

DP入门之《LIS~最长不降子序列》

刚学DP没思路,就去找书看,刚开始了解了记忆化搜索与递推,对DP问题渐渐开始有了一些理解,并有了一些自己的想法,对书上描述的状态转移方程开始感觉有点意思了。。。     今天又看看了对LIS的解决方...
  • AAguojia
  • AAguojia
  • 2011-08-17 11:39:01
  • 1308
收藏助手
不良信息举报
您举报文章:51nod 1294 修改数组 (LIS变形_DP)
举报原因:
原因补充:

(最多只允许输入30个字)