题目描述

数列 A1,A2,...,AN,修改最少的数字,使得数列严格单调递增。

输入格式

第 1 行,1 个整数 N

第 2 行,N 个整数 A1,A2,...,AN

输出格式

1 个整数,表示最少修改的数字

样例输入

3

1 3 2

样例输出

1

数据范围

对于 50% 的数据,N ≤ 10^3

对于 100% 的数据,1 ≤ N ≤ 10^5,1 ≤ Ai ≤ 10^9

思路

  需要用O(NlogN)的最长上升子序列。需要改几个小地方。

  有一个注意问题,就是改的数能不能是实数,我本来没有考虑这个情况,写了一个本来错误的程序,不过后来居然奇迹的卡过了所有点。(⊙o⊙)

 

机房断电了,代码没了,就这样吧。

STD:

#include<cstdio>
#include<iostream>
using namespace std; const int maxn=;
const int oo=0x3fffffff;//极大值
int a[maxn];
int lis[maxn], pos[maxn]; int main()
{
int n;
while(cin >> n)
{
for(int i=; i<=n; i++) scanf("%d",a+i);
int top=;
lis[]=-oo;
for(int i=; i<=n; i++)
{
if(a[i]>lis[top]&&a[i]-lis[top]->=i-pos[top]-)
{
lis[++top]=a[i];
pos[top]=i;
}
else
{
int l=, r=top, tp=-;
while(l<=r)
{
int mid=(l+r)>>;
if(a[i]-lis[mid]->=i-pos[mid]-)
{
tp=mid;
l=mid+;
}
else r=mid-;
}
if(tp!=-) lis[tp+]=a[i], pos[tp+]=i;
}
}
cout << n-top <<endl;
}
return ;
}

[GRYZ2015]INCR的更多相关文章

  1. redis incr incrby decr decrby命令

    incr.incrby.decr.decrby命令的作用和用法 redis中incr.incrby.decr.decrby属于string数据结构,它们是原子性递增或递减操作. incr递增1并返回递 ...

  2. 使用Redis的INCR、Hsetnx、Hincrby的命令生成序列号

    Redis INCR命令 用于由一个递增key的整数值.如果该key不存在,它被设置为0执行操作之前.如果key包含了错误类型的值或包含不能被表示为整数,字符串,则返回错误.该操作被限制为64位带符号 ...

  3. 转载 Memcached BinaryProtocol incr指令内存泄露的bug

    缘起 最近有个分布式限速的需求.支付宝的接口双11只允许每秒调用10次. 单机的限速,自然是用google guava的RateLimiter. http://docs.guava-libraries ...

  4. Redis与Memcached的incr/decr差异对比

    目前广泛使用的分布式缓存Redis和Memcached均支持对整数型Value值的增减,对应到具体命令中就是incr和decr命令. incr/decr是原子性操作(memcached 1.2.4及以 ...

  5. 通过Redis、Memcache的 incr 原子操作防刷机制的使用差别

    我的版本如下: Redis:3.2.100 Memcache:1.4.4 最近在处理服务器压力测试的时候,想到一个方案,在一定时间段内限制用户访问次数.具体的实现就是通过redis的院子操作incre ...

  6. 基于Redis的INCR实现一个限流器

    模式:计数器 计数器是 Redis 的原子性自增操作可实现的最直观的模式了,它的想法相当简单:每当某个操作发生时,向 Redis 发送一个 INCR 命令. 比如在一个 web 应用程序中,如果想知道 ...

  7. 理解 Redis(4) - 关于 string 的更多命令(SETEX, SETNX, INCR, DECR, MSET...)

    上一节介绍了关于字符串值的一些基本命令, 这一节将介绍一些进阶命令: 清理终端: 127.0.0.1:6379> clear 设置一个键值对, 同时设置过期时间为10秒: 127.0.0.1:6 ...

  8. Redis原子计数器incr

    一.前言在一些对高并发请求有限制的系统或者功能里,比如说秒杀活动,或者一些网站返回的当前用户过多,请稍后尝试.这些都是通过对同一时刻请求数量进行了限制,一般用作对后台系统的保护,防止系统因为过大的流量 ...

  9. win7 X64 使用VS2008 ->编译报错LINK : fatal error LNK1000: Internal error during Incr的解决

    编译报错LINK : fatal error LNK1000: Internal error during Incr的解决 Win7 旗舰版 Microsoft Visual Studio 2008 ...

随机推荐

  1. ApplePay扩大全球发卡行合作,“苹果税”撑不住了?

    5月11日Apple Pay全面登陆加拿大地区,更为重要的是,苹果终于在一些地区,开始和美国运通之外的发卡行达成了合作.这对于老是因为分账问题不愿意走出下一步的Apple Pay来说,已经是巨大的进步 ...

  2. 利用qt打开一张图片并转成灰度矩阵

    首先是mat类,这个类的主要作用是构造一个容器,并将对应像素的灰度值放在容器内 #ifndef MAT_H #define MAT_H #include <vector> #include ...

  3. 《Linux/Unix系统编程手册》读书笔记2

    <Linux/Unix系统编程手册>读书笔记 目录 第5章: 主要介绍了文件I/O更深入的一些内容. 原子操作,将一个系统调用所要完成的所有动作作为一个不可中断的操作,一次性执行:这样可以 ...

  4. android系统中使用TelephonyManager类来获取imei号和其他手机信息

    在AndroidManifest.xml文件中增加<!--允许读取电话状态SIM的权限--><uses-permission android:name="android.p ...

  5. UVA 11916 Emoogle Grid(同余模)

    题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. 面试题_1_to_16_多线程、并发及线程的基础问题

    多线程.并发及线程的基础问题 1)Java 中能创建 volatile 数组吗?能,Java 中可以创建 volatile 类型数组,不过只是一个指向数组的引用,而不是整个数组.我的意思是,如果改变引 ...

  7. 高斯消元 分析 && 模板 (转载)

    转载自:http://hi.baidu.com/czyuan_acm/item/dce4e6f8a8c45f13d7ff8cda czyuan 先上模板: /* 用于求整数解得方程组. */ #inc ...

  8. hdu 1257 最少拦截系统(简单贪心)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1257 虽然分类是dp感觉还是贪心 比较水 #include <iostream> #inclu ...

  9. POJ 2516 最小费用流

    依然最小费用最大流模板题 建边麻烦了些 #include <cstdio> #include <cstring> #include <iostream> #incl ...

  10. Oracle存储过程格式

    create or replace procedure sp_test ( -- 此地写传入的值 v_tjfs varchar2, --不用申明长度 v_kssj varchar2, v_ret ou ...