标签:bsp ref alt 关注 lin https ++ 严格 href
第1行:一个数N表示序列的长度(1 <= N <= 100000)。 第2 - N + 1行:每行1个数,对应数组元素。(0 <= A[i] <= 10^9)
输出最少需要修改几个数使得整个数组是严格递增的。
5 1 2 2 3 4
3
1 //2018-07-16 17:15:29 2 #include <iostream> 3 #include <cstdio> 4 #include <algorithm> 5 using namespace std; 6 7 const int N = 1000005; 8 9 int n; 10 int a[N], d[N], b[N], ans; 11 12 int main(){ 13 scanf("%d", &n); 14 int head = 0; 15 for(int i=1; i<=n; i++){ 16 scanf("%d", &b[i]); 17 if(b[i]==0 && i==1) a[++head] = b[i]; //偷懒的地方 18 if(b[i]-i >= 0) a[++head] = b[i]-i; 19 else ans++; 20 } 21 d[1] = a[1]; 22 int len = 1; 23 for(int i=2; i<=head; i++){ 24 if(a[i] >= d[len]) d[++len] = a[i]; 25 else{ 26 int j = upper_bound(d+1, d+len+1, a[i])-d; 27 d[j] = a[i]; 28 } 29 } 30 printf("%d\n", head-len+ans); 31 32 return 0; 33 }
标签:bsp ref alt 关注 lin https ++ 严格 href
原文地址:https://www.cnblogs.com/sineagle/p/9319282.html