首页 > 360笔试 2021/8/29
头像
keboom
发布于 2021-08-29 16:40
+ 关注

360笔试 2021/8/29

360笔试

第一部分

既有单选也有多选,而且编程题都是c++,而我选的岗位应该是Java吧。。很多c++语法看不懂额。

有图相关的知识

网络相关的挺简单的

操作系统linux命令等

第二部分

第一题

都为ACM模式

又到了一学期一次的大学生期末考试。但很多人期末考试的卷面成绩是不能及格的,需要靠较高的平时成绩来拖上去。平时成绩与期末考试的占比已经确定,假设平时成绩占比为p,期末考试占比为q,平时分为a,期末考试分数为b,则总成绩为(p*a+q*b)/100。(平时分与期末成绩都是整数,但总成绩可以是小数。)饶老师心肠特别好,他希望自己的学生及格率尽可能的高。但他也坚持期末考试分数更高的学生平时成绩也一定要更高。饶老师想知道在这种情况下,他们班的最大及格人数是多少(及格是指总成绩不低于60分)。

输入样例1

2 50 50

50 50

输出样例1

2


输入样例2

2 20 80

51 50

输出样例2

1

样例1中,两名同学,考试分数相同,平时分可以分配为100 100,两人都能及格。

样例2中,两名同学,第一位同学因为考试成绩高于第二位同学,故平时分也需要高于第二位同学;假设第一位同学平时分为100分,第二位同学最高只能得到99分的平时分,无论如何都无法及格。

过了100%,对输入的学生排序,从后往前遍历,如果学生及格,count++,如果学生不及格,结束遍历,输出count

import java.util.Arrays;
import java.util.Scanner;

/**
 * @author keboom
 * @date 2021/8/29
 */
public class Solution1 {


    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int p = sc.nextInt();
        int q = sc.nextInt();
        int[] stu = new int[n];
        for (int i = 0; i < n; i++) {
            stu[i] = sc.nextInt();
        }
        Arrays.sort(stu);
        // 平时分为100
        int a = 100;
        // 及格人数
        int count = 0;
        for (int i = n - 1; i >= 0; i--) {
            // 判断最后一个数
            if (i == n - 1) {
                // 期末分数b
                int b = stu[i];
                int grade = (p * a + q * b) / 100;
                if (grade < 60) {
                    System.out.println(count);
                    break;
                } else {
                    count++;
                }
            } else if (i < n - 1 && stu[i] == stu[i + 1]) {
                count++;
            } else {
                // 期末分数b
                int b = stu[i];
                a--;
                int grade = (p * a + q * b) / 100;
                if (grade < 60) {
                    System.out.println(count);
                    break;
                } else {
                    count++;
                }
            }
            if (i == 0) {
                System.out.println(count);
            }
        }

    }
}

第二题

长城上有连成一排的n个烽火台,每个烽火台都有士兵驻守。第i个烽火台驻守着ai个士兵,相邻峰火台的距离为1。另外,有m位将军,每位将军可以驻守一个峰火台,每个烽火台可以有多个将军驻守,将军可以影响所有距离他驻守的峰火台小于等于x的烽火台。每个烽火台的基础战斗力为士兵数,另外,每个能影响此烽火台的将军都能使这个烽火台的战斗力提升k。长城的战斗力为所有烽火台的战斗力的最小值。请问长城的最大战斗力可以是多少?

输入描述
第一行四个正整数n,m,x,k(1<=x<=n<=10^5,0<=m<=10^5,1<=k<=10^5)

第二行n个整数ai(0<=ai<=10^5)

输出描述
仅一行,一个整数,表示长城的最大战斗力

样例输入
5 2 1 2
4 4 2 4 4
样例输出
6

解释:将军放置到第二个位置和第四个位置,则所有战斗力都为6

不会,求解答!!!!给个思路,给个leetcode原题,都行,求大佬解答啊!!!!

全部评论

(40) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐