40道选择题,2道编程题(老师捞我和组队吃鸡)
整体来说,比较简单,正好适合我这样的选手
两道编程题都ac了,下面简单写一下
编程题代码是回忆的,不是当时写的,不一定对, 但是思路应该没错
1. 老师捞我
题目:已知期末成绩 f , 平时分占比 p , 期末成绩占比q。 总成绩等于 :(平时分占比 * 平时分)+ ( 期末成绩占比 * 期末成绩 )
及格标准是总成绩大于等于60。现在给每个同学打平时分,要求在期末成绩越高,平时分越高的前提下使及格的人数最多
思路:期末成绩从大到小排序,给第一个也就是成绩最高的平时分打100分,遍历期末成绩,遇到后成绩不等于前一个成绩的,平时分就减一
const [n,p,q] = read_line().split(" ").map((item)=>parseInt(item))
const score = read_line().split(" ").map((item)=>parseInt(item))
score.sort((a,b)=>b-a)
let normal = 100
let ans = 0
for(let i=0;i<n;i++){
if(i>0 && score[i]!=socre[i-1]){
normal--
}
let last = normal*p/100 + score[i]*q/100
if(last>=60){
ans++
}
}
console.log(ans)
2. 组队吃鸡
题目:A表示 1 个人队伍,B表示 2 个人队伍, C表示 3 个人, D表示4个人的队伍。可以任意将一个队伍加入到另一个队伍,产生一个新队伍,
但是人数不能大于4, 也不拆队,必须整体加入。 求4个人的队伍最多有多少个
思路: D的队伍不需要动,结果直接加入D的个数; C的队伍只能和A结合,结果加他们的较小者就好了; A减去和C结合的个数后,A,B之间可以任意组合,结果加入 Math.floor(A+2*B)/4
const n = parseInt(read_line())
for(let i=0;i<n;i++){
let arr = read_line().split(" ").map((item)=>parseInt(item))
let res = arr[3]
let r1r3 = Math.min(arr[0],arr[2])
res += r1r3
arr[0] -= r1r3
res += Math.floor((arr[0]+arr[1]*2)/4)
console.log(res)
}
#360笔试#