几道oj题的求助,真心帮忙的大牛希望能把用vs编的cpp文件和头文件发我邮箱里ctysky1991@126.com
楼主6.16要交4道oj题,有事时间原因没有写,希望大家帮忙,真的希望大家伸出援手。一共4道,其中1,2道比较简单,第三道最难,所以第三道单独给分。下面是1,2,4道。希望真心帮忙的大牛把用vs编的cpp文件和头文件发我邮箱里ctysky1991@126.com
第1题 自适应链表(AdaptiveList) 25分
【题目描述】
在所谓的自适应单链表中,每个元素被查找到之后,便被移到链表的最前端,同时其它元素的相对位置保持不变。给出一些待查找的元素,输出每次查找所需访问的元素个数。
【输入】
输入第一行包含两个整数n 和m,即链表中元素的总数和待查找的次数。第二行包含n 个整数,依次给出链表中的元素。这些元素保证互异。以下m 行每行包含一个数c,表示一个待查找元素。
【输出】
对于每个待查找的元素,输出查找该元素时所需要访问的元素个数。如果待查找元素找不到,则输出-1。
【输入样例】
5 5
1 2 3 4 5
3
3
6
2
3
【输出样例】
3
1
-1
3
2
【限制】
1 ≤ {n, m} ≤ 100
链表元素和待查找元素均为不超过2^16 的正整数。整数间均以空格分隔,且行末没有空格。
须用链表实现,否则不得分。
第2题 树重建(Rebuild) 25分
【题目描述】
设二叉树的节点以[1,n]内的整数编号。现给定某棵二叉树的中序遍历序列和后序遍历序列,试输出其对应的前序遍历序列。
【输入】
第一行仅含一个整数,即节点总数n。
第二、三行,即已知的中序、后序遍历序列。
【输出】
仅一行。
若所给的中序、后续遍历序列的确对应于某棵二叉树,则输出其前序遍历序列。否则,输出-1。
【输入样例1】
5
4 2 5 1 3
4 5 2 3 1
【输出样例1】
1 2 4 5 3
【输入样例2】
3
2 3 1
1 2 3
【输出样例2】
-1
【限制】
对于30%的测例,1 ≤n≤15
对于100%的测例,1 ≤n≤5000
输入和输出的遍历序列均为[1, n]内整数的一个排列,整数间均以空格分隔,且行末没有空格。
【提示】
观察根节点在不同遍历序列中的位置。
第4题 魔山(Zauberberg) 25 分
【题目描述】
住在魔山上的生物,近来纷纷染上某种怪病。NC 检疫局认为,住得越高的生物,得病的概率越大。于是他们企图通过削平山顶,灭杀掉某一海拔以上(含)的所有生物——尽管其中有些的确已经染病(杀中),有些其实尚未染病(误杀);而在这一海拔以下的生物中,有些仍可能已经染病(漏杀)。当然,他们既不希望误杀过多,也不愿意漏杀太多。于是为制定可行的灭杀方案,需兼顾两项指标:
杀中率 = 杀中数量/染病生物总数
误杀率 = 误杀数量/健康生物总数
可行的灭杀方案须满足的条件是:杀中率不低于某一指定下限(记作Phit),而且
误杀率不高于某一指定上限(记作Pfalse)。
实际上,我们已知魔山上所有生物的普查数据,即它们各自居住的海拔高度以及目前是否染病。注意,同一海拔上可能同时住有多个生物,且他们在不同高度上的分布完全随机,没有任何规律可循。现在,对于检疫局需要考察的多种(Phit, Pfalse)组合,请你尽快算出对应的可行灭杀方案。
【输入】
第1 行两个正整数:N 为魔山上生物总数,H 为魔山高度。
接下来N 行,分别给出某一生物的信息,包括一个非负整数(居住高度)和一个字符('+'表示阳性染病,'‐'表示阴性无病)。
然后是一个正整数M,表示需要制定的灭杀方案总数。
最后M 行,各用两个以空格分隔的实数(精确到6 位小数)给出一个(Phit, Pfalse)的组合条件,取值范围均为[0, 1]。
【输出】
共M 行,依次给出M 个灭杀方案。
如果存在可行方案,则对应的行包含以空格分隔的两个非负整数hL ≤ hH,表示按照对应的(Phit,Pfalse)组合条件,从hL 到hH 均可作为灭杀的起始高度。否则,对应的行仅含一个整数‐1。
【输入样例1】
5 12
10 +
8 ‐
7 +
6 +
5 ‐
3
0.500000 1.000000
0.300000 0.500000
0.300000 0.100000
【输出样例1】
0 7
6 10
9 10
【输入样例2】
10 10
4 +
6 +
0 +
9 +
2 +
3 ‐
9 ‐
7 ‐
9 ‐
5 ‐
15
0.818784 0.971310
0.828424 0.955460
0.197642 0.972830
0.209844 0.000000
0.367560 0.826768
0.197130 0.608106
0.183518 0.182270
0.192008 0.581226
0.208676 0.000000
0.435384 0.770400
0.395772 0.850256
0.214818 0.000000
0.209772 1.000000
0.207724 0.414344
0.196300 0.613776
【输入样例2】
‐1
‐1
4 9
‐1
4 6
6 9
‐1
8 9
‐1
‐1
4 6
‐1
0 6
‐1
6 9
【限制】
2 ≤N ≤ 100,000,其中染病和健康的生物至少各有一个
1 ≤H ≤ 10^9
1 ≤M ≤ 200,000
【提示】
排序,查找