题目名称 | 1365. [HAOI 2013]软件安装 |
---|---|
输入输出 | haoi13t4.in/out |
难度等级 | ★★☆ |
时间限制 | 1000 ms (1 s) |
内存限制 | 128 MiB |
测试数据 | 10 |
题目来源 | QhelDIV 于2013-04-23加入 |
开放分组 | 全部用户 |
提交状态 | |
分类标签 | |
分享题解 |
通过:120, 提交:262, 通过率:45.8% | ||||
Samle | 100 | 0.072 s | 2.10 MiB | C++ |
Shirry | 100 | 0.089 s | 4.15 MiB | C++ |
szzy | 100 | 0.102 s | 2.05 MiB | C++ |
TA | 100 | 0.115 s | 14.43 MiB | C++ |
宋逸群 | 100 | 0.119 s | 6.45 MiB | C++ |
宋逸群 | 100 | 0.122 s | 6.45 MiB | C++ |
宋逸群 | 100 | 0.130 s | 6.45 MiB | C++ |
小DOTA | 100 | 0.132 s | 4.89 MiB | C++ |
AAAAAAAAAA | 100 | 0.140 s | 3.37 MiB | C++ |
赵赵赵 | 100 | 0.141 s | 3.27 MiB | Pascal |
关于 软件安装 的近10条评论(全部评论) | ||||
---|---|---|---|---|
原题还wa了两次
AAAAAAAAAA
2017-08-31 21:01
12楼
| ||||
啊啊啊啊啊啊啊终于调好了。。。自己傻逼一样的错误。。。果然一定要记得不要怕麻烦,多用调试加手写模拟。。。
错误1:下放lazytag时应该更新自己的值,但是更新成左子节点的值了 错误2:nd[k << 1 | 1]写成nd[k << 1 | m]喵喵喵???? | ||||
再写一遍,发现真是水啊
| ||||
膜拜楼上大神,我考试时写了1小时的分块结果发现审错题了,误以为退房的区间保证在此之前都已经住人,正要改结果交卷了。。。
悲催的下午想改却一直颓,只好弃疗,写了个线段树的过了。。 | ||||
分块终于过了哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈
调到现在 | ||||
暴力70,数据水的可以= =
| ||||
| ||||
| ||||
| ||||
%%%
|
Dr.Kong有一个容量为N MB (1 <= N <= 50,000)的存储磁盘,不妨设地址空间编号为1到N。现在他需要安装一些软件, 每个软件要占用一定大小的容量且必须装在连续的地址空间里。比如发出指令“1 100”,表示需要申请100 MB的存储空间。如果有多个满足条件的连续空间,则选择起始地址最小的一个进行分配。若没有足够的连续空间,将不安装此软件(即使有足够多的不连续存储空间)。
系统可以不定时的卸载软件,释放磁盘的空间。比如:发出“2 23 100”,表示释放起始地址为23的连续100MB大小的容量。释放时,不需要考虑这些空间里是否安装过软件。
请你编写一个程序,帮助Dr.Kong处理M (1 <= M <= 50,000)个按指令次序请求的任务。第一个请求到来前,磁盘是空的。
输入格式:
第1行: N M
第2..M+1行: 每行描述了一个请求,如果是申请,则用2个数字 1 Mi 表示;
如果是释放,则用3个数字 2 Di Mi表示。数据之间用一个空格隔开
(1<=Di ,Mi<= 50,000)
输出格式:
对于每个申请指令,输出1行。如果请求能被满足,输出满足条件的最小起始地址;如果请求无法被满足,输出0。
输入样例 :
10 6
1 3
1 3
1 3
1 3
2 5 5
1 6
输出样例 :
1
4
7
0
5