题目描述

数列 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. 李洪强iOS开发之OC语言@property @synthesize和id

    OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...

  2. lintcode 中等题:kth-largest-element 第k大元素

    题目 第k大元素 在数组中找到第k大的元素 样例 给出数组[9,3,2,4,8],第三大的元素是4 给出数组 [1,2,3,4,5],第一大的元素是5,第二大的元素是4,第三大的元素是3,以此类推 注 ...

  3. Android:AlertDialog对话框

    1.简单的ALertDialog: Dialog alertDialog = new AlertDialog.Builder(this) .setTitle("标题") .setM ...

  4. Buffer数据结构和new IO的Memory-mapped files

    一.Buffer类 java.nio.Buffer这个类是用来干什么的?有怎样的结构? "Core Java"中是这样定义的“A buffer is array of values ...

  5. Java API —— ArrayList类 & Vector类 & LinkList类

    1.ArrayList类     1)ArrayList类概述         · 底层数据结构是数组,查询快,增删慢         · 线程不安全,效率高     2)ArrayList案例   ...

  6. 经典K线组合图解 > 正文

    日K线波段中上下影线的箱体操作法(完整) http://video.sina.com.cn/v/b/130809461-2486130757.html!!经典K线组合图解 > 正文 http:/ ...

  7. js问题总结

    .removeClass(" ") 移除一个css样式 $("#popUpBox i").removeClass("channel_icon" ...

  8. Linux下jvm、tomcat、mysql、log4j优化配置

    小菜一直对操作系统心存畏惧,以前也很少接触,这次创业购买了Linux云主机,由于木有人帮忙,只能自己动手优化服务器了.... 小菜的云主机配置大致为:centeos6(32位),4核心cpu,4G内存 ...

  9. VCC_VID_VTT等的含义

    VCC--为直流电压.在主板上为主供电电压或一般供电电压.例如 一般电路VCC3--+3V供电.主板上VCC3: 3.3V VCC25: 2.5V VCC333: 3.3V VCC5: 5V VCC1 ...

  10. Android中LayoutParams

    LayoutParams are used by views to tell their parents how they want to be laid out. See ViewGroup Lay ...