1. 总共A-E五道题,截止最好是这周周四结束前,要用C/C++语言,做完还需在word中每题写解题思路、复杂度分析等内容。
2. 要完成在计蒜客网站代码的提交,以及另外要完成word的撰写。
3. 希望截止6.18 22:00前可以做完。
4. 标价150,具体可议。
具体题目如下
A题:
小特小时候是一个学生干部。有一次,他们年级举办运动会,有n个运动员参加比赛,编号依次为1...n。编号为i的运动员的班级是ci班。经过一场场比赛,每个运动员都有自己的比赛成绩,编号为i的运动员的比赛成绩是bi分,众所周知,运动员成绩越高越厉害。比赛结束后,班主任向小特提出了m个问题,如果小特都能回答,那么就证明小特工作干得不错,下次还让他当学生干部。班主任提出的m个问题都以c,k的形式给出,表示班主任想知道班级c的同学中成绩排名第k名的学生编号(当然成绩最高的是第一名)是多少(也就是1-n中的一个数)、
同时,运动会保证了一个班级中不可能出现比赛成绩一样的学生,且班主任问的问题一定是有解的。
Input
第一行:一个数n(1<=n<=1000),表示运动员的数量
第2~n+1行:每行两个数字c b(1<=c<=10,1<=b<=10^9),表示运动员所在班级编号和比赛成绩(对应编号1到n的运动员)
第n+2行:一个数m(1<=m<=100),表示班主任题的m次询问
第n+3~n+m+2行:每行两个数字c k,表示询问班级c比赛成绩第k名学生的编号为多少
Output
共m行:输出一个数字,表示对应询问的答案
Sample Input
6
1 5
1 2
1 8
2 3
2 9
3 1
4
1 2
1 3
2 2
3 1
Sample Output
1
2
4
6
B题:
这天,小特生日。他的好朋友给他送来了生日礼物,这些礼物都经过精心包装放在若干个盒子里,而礼物就放在最里层的盒子里。朋友给他送的礼物遵循了这样一条规则,越有价值的礼物应该放在越深的盒子里。他收到礼物后,急切地想知道这些礼物的价值,于是他把他收到的礼物写成括号的形式表示出来。具体他是这样计算他的礼物的价值的:
1. 一对括号代表一个礼物盒子,盒子里面可以再放盒子,即括号里可以再放括号;若一对括号里没有括号,则代表里面放着礼物。
2. 单独的一对括号代表这个礼物只有1层包装,价值为1(比如"()"表示价值为1的礼物)
3. 两个合法的括号序列的拼接而成的括号序列的价值是它们价值之和(比如"()()"价值为1+1=2)
4. 礼物每在盒子里放的层数深一层,它的价值就会翻倍。即嵌套括号序列的价值是,所嵌套的括号序列的价值的翻倍(比如"((()))"价值为1*2*2=4)
根据小特判断礼物的规则,请告诉他,他所写的括号代表了多少价值的礼物。
小特保证他写的括号是正确合法的
Input
一个只包含'('和')'的合法的括号序列S,代表小特写下的括号序列,一个合法的括号序列是这样定义的:
1、()是合法的括号序列
2、若字符串A和B是合法的括号序列,那么AB也是合法的括号序列
3、若字符串A是合法的括号序列,那么(A)也是合法的括号序列 2<= |S| <=50
Output
一个数字,代表小特所写的括号序列所代表的礼物的价值
Sample Input
(()(()))
Sample Output
6
C题:
小特家里很有钱而且特别喜欢吃。于是他买了一条传送带让他随时随地都能吃到家里厨师做的食物。这条传送带是这样的,传送带的一头(记为1号口)连接着厨房,厨师把放做好放在1号口,然后传送带就会把食物传送到另一头(记为2号口)。小特就在2号口等着拿食物吃。当然了,由于传送带的特性,小特每次能食物只能拿厨师最先做好的食物。
有一天,在传送带上发生了关于厨师上菜和小特拿食物的n次事件。请你记录下这n次事件的结果。
事件分为两种:
1. 1 x(厨师将编号为x的食物放到传送带的1号口)
2. 2(小特从2号口取食物)
对于第2种事件,你需要把小特拿到的食物编号输出。如果小特拿食物时传送带上没有食物,则输出“empty”。
例如:n = 5,对应的事件为:
1 123 (厨师向传送带上放食物,放完后传送带上有食物:123)
1 234(厨师向传送带上放食物,放完后传送带上有食物:123, 234)
2(小特从传送带上拿食物,输出123,拿完后传送带上的食物为:234)
2(小特从传送带上拿食物,输出234,拿完后传送带上的食物为:空)
2(传送带上没有食物,输出:empty)
对于该例子,你的程序输出为:
123
234
empty
Input
第一行:1个数n(1 <= n <= 10000) 。后面n行:每行1个事件,1 X或者2(0 <= x <= 10000)
Output
对应所有操作2,输出小特拿到的食物编号或者"empty"
Sample Input
5
1 123
1 234
2
2
2
Sample Output
123
234
empty
D题:
M国是一个等级森严的社会,人与人之间的关系构成了树形的层次结构,每个人能够管理他自己和他的子孙节点对应的人。这天,身为M国总统的小特心血来潮,想要了解一下,他所管理的这个M国中,每个人能够管理的人数加起来是多少。于是,他拿出了代表M国社会结构图,这个图是以树结构的方式呈现,每个人都被编号为1-n(伟大的M国总统小特当然是1号(根节点)),树中相连的边表示直接上下级关系。请你根据这个树结构图帮小特回答一下M国每个人能够管理的人数加起来是多少。
以下面的树结构为例:
1─2─4─5
└─3
其中编号5的人没有子节点,只能管理自己1人。编号4的人有子节点5,可以管理自己和5号人。节编号1的人有子孙节点1,2,3,4,5,他可以管理1-5一共5个人。
求树中每个编号的人所能管理的人数之和。上面例子中,节点1到5,可以管理的人分别为5,3,1,2,1,M国每个人能够管理的人数加起来是 5 + 3 + 1 + 2 + 1 = 12
Input
第一行:1个数n(1 < n <= 1000),表示M国有多少人。
后面n-1行:每行2个数x y,表示编号为x的人是编号为y的人的直接上级(1 <= x, y <= n)。
Output
输出1个数,表示M国每个人能够管理的人数加起来之和。
Sample Input
5
1 2
1 3
2 4
4 5
Sample Output
12
E题:
疫情来了,小特因为抗疫不力被赶下台了。小特觉得非常后悔,他痛定思痛,决定从基层做起弥补自己的过失。于是他当起了快递员,去运送防疫物资。
这天,小特要从口罩生产商处出发,运送到市中心。中间有许多路口需要花费时间,且不同的路所要花费的时间不同。现在你能帮小特计算出他一共花费的最少时间吗?
口罩生产商在1号位置,市中心在n号位置。
Input
输入包括多组数据。
每组数据的第一行是两个整数n,m代表路口的数量和路口之间的道路数量(n<=100,m<=10000)。其中,标号为 1 的路口是口罩生产商所在地,标号为 n的路口是市中心所在地, m则表示在成都有几条路。
接下来输入m行
每行有x y t,代表通过x号路口到y号路口需要花费t分钟,其中1<=x,y<=n,1<=t<=1000。
当n=0,m=0时程序结束
输入的数据保证至少存在1条商店到赛场的路线。
Output
每行输出一个整数代表小特花的最少时间
Sample Input
2 1
1 2 3
3 3
1 2 5
2 3 5
3 1 2
0 0
Sample Output
3
2