题目名称 2044. [POJ][NEERC2003]键值插入
输入输出 keyInsertion.in/out
难度等级 ★★★
时间限制 1000 ms (1 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarmikumikumi 于2015-09-22加入
开放分组 全部用户
提交状态
分类标签
分块
分享题解
通过:6, 提交:25, 通过率:24%
Gravatarmikumikumi 100 0.311 s 10.65 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 100 0.314 s 10.65 MiB C++
GravatarSkyo 100 0.948 s 21.97 MiB C++
GravatarSkyo 100 1.426 s 5.09 MiB C++
Gravatar~Love Star 100 1.977 s 1.38 MiB C++
Gravatarzhengtn03 100 2.913 s 16.37 MiB C++
Gravatar张灵犀不和我一般见识真可怕呢(笑 90 0.313 s 10.65 MiB C++
Gravatarzhengtn03 90 3.437 s 71.27 MiB C++
Gravatarzhengtn03 90 3.496 s 139.90 MiB C++
GravatarSkyo 80 1.588 s 4.53 MiB C++
关于 键值插入 的近10条评论(全部评论)
这题是不是不能用Splay来写。。。。。。分块A了,Splay就是TTTTTTTTTTTTT,8 10这俩点太污了。。。。【原谅我Splay写的渣】
GravatarSkyo
2015-12-22 18:56 2楼
分块模板题(然而我最终也没有用分块解决掉它)
Gravatarmikumikumi
2015-09-23 17:20 1楼

2044. [POJ][NEERC2003]键值插入

★★★   输入文件:keyInsertion.in   输出文件:keyInsertion.out   简单对比
时间限制:1 s   内存限制:256 MiB

【题目描述】

作为一名巨硬公司的员工,你被要求设计一种可以用来存储整数的数据结构。这种数据结构可以视为一个可以执行一种特殊操作的数列A,下标从1开始,且可以存储无限多的数。

这种特殊操作我们定义为Insert(L,K),L是数列的一个下标,K是一个整数.这种操作是这样执行的:

如果A[L]为空,则A[L]=K;

如果A[L]不空,则先执行Insert(L+1,A[L]),然后A[L]=K;

现在我们给你N个整数L1,L2,L3......LN,要求你输出操作后的数列

操作分别为:

Insert(L1,1)

Insert(L2,2)

.......

Insert(LN,N)

【输入格式】

第一行是两个整数N,M代表操作的数量,和L[i]的最大值1<=N<=131074,1<=M<=131074

第二行为N个整数,分别是L1,L2...LN

【输出格式】

第一行是一个整数P,代表A中最后一个不为空的元素

第二行是P个整数,代表A[1],A[2]...A[P],如果A[i]为空,则输出0

【样例输入】

5 4
3 3 4 1 3

【样例输出】

6
4 0 5 2 3 1

【提示】

在此键入。

【来源】

在此键入。