51NOD 1294 修改数组 【LIS】
来源:互联网 发布:双色球九宫图算法杀号 编辑:程序博客网 时间:2024/05/29 14:52
传送门
a[i]=a[i]-i
则不难发现 对a[i]中>=0的元素 求一遍单增子序列(非严格)
答案就=n-lis
#include<stdio.h>#include<bits/stdc++.h>#define ll long long#define lowbit(x) ((x)&(-x))using namespace std;const int N = 1e5 +5 ;int b[N];int lcs(int*a,int n){ int m=0; for(int i=0;i<n;++i){ if(a[i]<0){ continue; } if(!m||a[i]>=a[m-1]){ a[m++]=a[i]; continue; } int*it=upper_bound(a,a+m,a[i]); if(it==a+m){ a[m++]=a[i]; } else{ *it=a[i]; } } return m;}int main(){ int n; while(~scanf("%d",&n)){ int m=0; for(int i=0;i<n;++i){ scanf("%d",&b[i]); b[i]-=(i+1); } printf("%d\n",n-lcs(b,n)); } return 0;}
阅读全文
0 0
- 51NOD 1294 修改数组 【LIS】
- 51nod 1294 修改数组 (LIS变形_DP)
- 51nod 1294 修改数组
- 51Nod-1294-修改数组
- 【51Nod 1294】修改数组
- 【51 nod 1294】 修改数组
- [51nod 1294]修改数组
- 51nod 1294 修改数组 dp
- 51nod 1294 :修改数组 && HDU 5256:序列变换
- 【51Nod】-1050 循环数组最大子段和(LIS,小变化)
- 51nod 最长单增子序列(LIS)
- 51nod 1294 修改数组(dp,逆向思维,最大上升子序列)
- 51nod 1134 最长递增子序列 nlogn lis
- 51 Nod 1134 最长递增子序列 LIS NlogN 写法
- 51nod 1134 最长递增子序列(LIS)
- 51Nod-1134 最长递增子序列【LIS】
- 树状数组求不带修改前缀最值问题 51NOD 1272 最大距离
- 51Nod-1617-奇偶数组
- 斐波那契数列
- 敏捷开发与传统开发
- 浅谈MVC架构—你到底有什么本事!!!
- Markdown 基本用法 (2)
- Android面试知识点总结-Android篇
- 51NOD 1294 修改数组 【LIS】
- 数据结构——二叉树的创建和遍历
- 第一个Docker镜像Java-web项目
- 使用mac自带终端修改hosts
- 修改地址栏参数
- mysql 修改密码后,切记要FLUSH PRIVILEGES
- 深入java 读读枚举类Enum源代码(转载)
- linux基本操作命令
- swift cell 分割线 显示不全 自由控制长度