原题(提交答案式题):
还原
鉴于上面几道题目太‘水’,怕各位大牛半小时切完后没事做,因此补上这道‘难’题让大家打发时间。
题目描述
一个包含N个数的序列A,定义B:
Bi = max{Bj} + 1 {Aj < Ai, j < i}
现在有一个序列N=500000,我将对应的B1至BN告诉你,看你能不能猜出这个序列。
Your Task
本题为提交答案式题目,提供的输入文件 revert.in中按题目描述给出B1至BN,你需要提供一个输出文件 revert.out ,在一行按顺序给出A1至AN。
评分标准
若你未提供输出文件或输出文件不合法(即按你提供的A序列求出的B值与输入不符),得0分,否则得30分。
在此基础上,若你的输出与标准输出完全匹配,奖励20分。^_^
写了7个版本的程序,最后被solution痛苦到了!
1:用bfs
2:从后面插入,线段树
3:用key类似的方法
4:二叉树的插入
5:直接找prev,dfs按prev排列
6:连边,dfs
7:用队列和double二分。
……
(还有的我忘了)
看看solution:
不用编程,只用小小几个操作即可。
1. 左键单击revert.in
2. 按F2
3. 输入revert.out
4. 敲回车。
5. 50分到手。
吐血中……