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;
} 





版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

51Nod-1294-修改数组

ACM模版描述题解向大牛致敬——xdlove,思量许久,不能参透,大牛题解一语惊醒梦中人~~~首先可以明确一点,一个最小的严格递增的正整数子序列为1,2,3,……….n,那么对于题目给出的任何一个序列...
  • f_zyj
  • f_zyj
  • 2016-10-20 01:24
  • 161

51nod 1043 幸运号码【dp+滚动数组】

1043 幸运号码 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 1个长度为2N的数,如果左边N个数的和 = 右边N个数的和,那么就是一个幸运号码。 ...

51Nod 1376 最长递增子序列的数量(dp+树状数组)

题目链接最长递增子序列的题做个不少,让求数量的第一次做,O(n^2)的代码很好写,但数据范围50000,故无情超时,想了很久,总算有所得。时间: O(nlog(n)) 空间: O(2*n)思路 ...

51Nod 1050 循环数组最大字段和 ( DP

循环数组最大子段和基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[...

51nod 1050 循环数组最大子段和 dp

N个整数组成的循环序列a[1],a[2],a[3],…,a[n],求该序列如a[i]+a[i+1]+…+a[j]的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑a[n-1],a[n]...

51nod 1270 数组的最大代价【思维+Dp+滚动数组优化】

1270 数组的最大代价 题目来源: HackerRank 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 数组A包含N个...

51Nod-1134 最长递增子序列【LIS】

1134 最长递增子序列 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 给出长度为N的数组,找出这个数组的最长递增子序列。(递增子序列是指,子序列的元素是递增的) ...

51nod 1459 迷宫游戏Dijkstra变形

你来到一个迷宫前。该迷宫由若干个房间组成,每个房间都有一个得分,第一次进入这个房间,你就可以得到这个分数。还有若干双向道路连结这些房间,你沿着这些道路从一个房间走到另外一个房间需要一些时间。游戏规定了...

51Nod-1092 回文字符串(最长公共子序列变形)

 1092 回文字符串 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 回文串...

51Nod-正整数分组(01背包变形)

1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题  收藏  关注 将一堆正整数分为2组,要求2组的和相差最小。 例如:1...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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