第十四届蓝桥杯c++省赛初中高级组编程题5和6题答案

2023-05-15 22:57:54   

第十四届蓝桥杯c++省赛中级组和高级组的题目相同,都是5道选择题+6道编程题,第十四届蓝桥杯c++省赛初级组在中高级组的基础上减掉了编程第6题。

第十四届蓝桥杯c++省赛初级组试卷模拟

第十四届蓝桥杯c++省赛中高级组试卷模拟



第5题(80分)


时间限制:1000MS
内存限制:65536KB
编程实现:数字游戏
 老师给出了一组数,要求小蓝对这组数进行调整,调整的规则如下:
 1.第1次,从这组数中选出一个最小的数,把它调整为和第二小的数一样大;
 2.第2次,再从这组数中选出一个最大的数,把它调整为和第二大的数一样大;
 3.重复执行1、2步骤;
 4.当这组数中所包含的不同的数少于3个时,结束调整。
  现在给定了一组数,请帮小蓝编写程序计算出总共的调整次数,以及调整结束时这组数中的最小数和最大数。
例1:
  当这组数是 2 2 2 2时,这组数中所包含的不同的数少于3个(只有2这一种数),无需调整,最后输出:
0 2 2
例2:
当这组数是 1 3 4 2时,调整过程如下:
 1.先将这组数中最小的数1,改成2,这组数变为:2 3 4 2
 2.再将这组数中最大的数4,改成3,这组数变为:2 3 3 2
  这时,这组数中只包含2、3两个数了,满足规则4,调整结束,总共调整了2次,故最后输出:
2 2 3
输入描述
 第一行输入一个正整数N(3≤N≤1000000),表示这组数中数的个数
 第二行输入N个正整数(1≤正整数≤1000000),正整数之间用一个空格隔开
输出描述
 输出一行,包含三个整数,分别是总的调整次数、调整结束时的最小值和最大值,整数之间用一个空格隔开
样例输入
4
1 3 4 2
样例输出
2 2 3


答案及解析:http://www.6547.cn/question/view/ltbtqmudwuvzdvw1




第6题(100分)


时间限制:1000MS
内存限制:65536KB
编程实现:活动人数
  有一个大型企业集团,由N个部门组成,编号从1到N。这些部门之间的层次关系形成了一个树状结构,一个上级部门可能会有1个或多个直接下级部门,一个下级部门只有一个直接上级部门。
  本月集团举办了一个大型活动,这次的活动组织方按如下要求安排活动:
 1.来的人越多越好;
 2.如果一个上级部门参加本次活动,那么他们的直接下级部门就不能参加,而他的间接下集部门可以参加(如下图,如果部门1参加,那么部门2、3不能参加,而部门4、5、6可以参加)。
  请你帮他们计算一下,如何安排可以使参加活动的人数最多,并输出参加活动的最多人数。
  例如:当N=6,每个部门编号为1到6,部门上下级关系和部门的人数如下图所示:
  注意:示例中,部门1是层级最高的部门,没有直接上级,故将其直接上级部门设为0;当安排(1、4、5、6)这4个部门参加活动时,人数最多,为11,所以输出11。
输入描述
第一行输入一个正整数N(1≤N≤100000),表示集团所有部门的数量
接下来有N行,每行输入三个非负整数F、S和C,(0≤F≤N,1≤S≤N,F≠S,1≤C≤1000),F表示是部门S的直接上级,C表示部门S的人数,整数之间用一个空格隔开
注意:如果是最上层的部门,其直接上级部门编号为0
输出描述
输出一个整数,表示参加活动的最多人数
样例输入
6
0 1 2
1 2 4
1 3 3
2 4 3
3 5 2
3 6 4
样例输出
11



答案及解析:http://www.6547.cn/question/view/bm8exlgyifiycmub