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原题,都行,求大佬解答啊!!!!

#360笔试##360公司##笔经#
全部评论
ak的来说一下第二题思路吧。 首先求最小值最大一般来说是个二分答案的问题,这个题就是。我们可以二分一个值,检查是否能达到。检查能否达到的方法就是把每一个位置还缺几个将军算出来,因为最左或者最右必须要被覆盖,所以从左往右遍历,在需要将军的地方,假设是i,那么就在i+x的位置放,是最优的,这样模拟就可以确定当前值是否满足要求了。。。
9 回复 分享
发布于 2021-08-29 17:38
int main() { int  n, m, x, k; cin >> n >> m >> x >> k; vector<int> nums(n, 0); for (int i = 0; i < n; i++) cin >> nums[i]; int m_min = 50000; for (auto its : nums) m_min = min(its, m_min); int m_max = m_min + m * k; int l = 1; int r = m_max; while (l < r) { int mid = (l + r + 1)/2; vector<int> dp(n, 0); int numm = 0; bool b1 = true; for (int i = 0; i < n; i++) { int num = 0; int r0 = i + x < n ? i + x : n-1; for (int j = i - x>0 ? i - x : 0; j <= r0; j++) { num += dp[j]; } if (num * k + nums[i] >= mid) { continue; } else { int lest = mid - num * k - nums[i]; int num2 = lest / k; if (lest % k != 0) num2++; if (num2 + numm > m) { b1 = false; break; } dp[r0] += num2; numm += num2; } } if (b1) { l = mid; } else r = mid - 1; } cout << (l + r) / 2 << endl; system("pause"); } 二分查找
6 回复 分享
发布于 2021-08-29 17:44
输出了一个6,过了18%,哈哈哈
4 回复 分享
发布于 2021-08-29 16:53
第二题,用疯狂排序法,27%
2 回复 分享
发布于 2021-08-29 17:03
第二题 二分枚举 答案 check函数的时间复杂度 o(n * x),过了0.82,以为是超时的问题因为数据规模是10^5 * 10^ 5,加了个滑动窗口优化,优化完变成0.18😂😂😂,发现check的函数有问题hhh, 遂放弃hhh,这是我对这道题的挣扎😓😓😓
2 回复 分享
发布于 2021-08-29 17:04
第二题 两行代码 直接输出数组最小值 + m*k  过了18%
2 回复 分享
发布于 2021-08-29 17:12
有没有大佬第二题有思路啊
1 回复 分享
发布于 2021-08-29 16:45
第一题AC,第二题18%,实在想不出来,提前交卷了
1 回复 分享
发布于 2021-08-29 16:59
有多选吗,没看题😥
1 回复 分享
发布于 2021-08-29 17:00
第二题可以动态规划
1 回复 分享
发布于 2021-08-29 17:01
输出6,和2 过了27%
1 回复 分享
发布于 2021-08-29 17:32
1 回复 分享
发布于 2021-08-29 17:38
这样写更简洁 import java.util.*; public class Main {     public static void main(String[] args) {         Scanner sc = new Scanner(System.in);         int num = 100, res = 0;         int n = sc.nextInt();         int p = sc.nextInt();         int q = sc.nextInt();         int[] scores = new int[n];         for (int i = 0; i < n; i++)             scores[i] = sc.nextInt();         Arrays.sort(scores);         for (int i = n - 1; i >= 0; i--) {             if (i < n - 1 && scores[i] < scores[i + 1]) num--;             double sum = (p * num + q * scores[i]) / 100;             if (sum >= 60) res++;         }         System.out.println(res);     } }
1 回复 分享
发布于 2021-08-29 19:15
第一题ac了,第二题,我就输出了个6,然后过了18个
1 回复 分享
发布于 2021-08-30 10:24
我直接不停排序和加操作过了36,复杂度太高超时了,另外这么多c语言题目时什么鬼😂
点赞 回复 分享
发布于 2021-08-29 16:43
还没考完就发答案了吗😥
点赞 回复 分享
发布于 2021-08-29 16:43
第二题暴力求解超时,过了27%
点赞 回复 分享
发布于 2021-08-29 16:44
我c++.岗位 为什么全是 java的题??
点赞 回复 分享
发布于 2021-08-29 16:45
第二题猜个二分分半天没出来哈哈哈
点赞 回复 分享
发布于 2021-08-29 16:45
第二题没思路,就过了27%,放弃了😥
点赞 回复 分享
发布于 2021-08-29 16:52

相关推荐

总共四轮技术面(实际三面,但一面操作很迷,说算两面)+hr面一二面一上来手撕算法,给你一个有障碍物的网格,放棋子,不能相邻,求放置棋子的所有情况(说不放棋子也算一种情况)。刚看这题时有点像八皇后,但是不限定棋子,尝试用回溯写了下,没写出来。中途面试官说有事,临时走了,然后又来了一个面试官(直接懵逼)。向面试官说明情况后,面试官也不清楚情况,然后正常开始面试面试难度不大,聊了下项目,说他们做平台开发的也要写前端,问我会不会react(不会)。后面好像就问了一些简单的八股文。算法:镜像二叉树(没写出来,递归没想出来,用队列层次遍历发现也有问题)反问有几轮面试,他说三四面吧,前面那应该也算一次二道算法都没写出来,本以为凉了,结果收到了下一面的通知三面一个小姐姐(技术面遇到小姐姐着实有点吃惊)还是简单的八股文,网络、数据库这些。tcp连接中连接失败的原因有哪些(没答好)其他问题也忘了,整体难度不大。算法:三数之和(求最接近target的),二叉树先序遍历转双向链表,直接在二叉树的基础上改变左右指针转(还好上次面试完恶补了下二叉树的题)四面聊项目,如何提高高可用,答集群,用nginx做负载均衡,nginx服务器挂了怎么办,nginx服务器集群(后续接着问,没答好)后面也聊了一些八股算法:反转链表,遍历写完,要求再递归写,递归用了一个全局遍历保存了反转后的头节点,要求禁止用全局变量,最后在面试官的提示下写出来hr面自我介绍,是否愿意转语言了解旷视吗相对其他公司怎么选,后面改问平台、薪资、地域、工作内容四者我最看重啥(答的平台)薪资期望,明确告诉我14薪,每月多少没确定目前有其他offer吗反问:武汉研发中心情况(目前200人左右,还在扩大,在江夏区未来城)然后介绍了福利情况,早9,晚6,双休,年假10天,病假5天,一个月700饭补,加班会有额外饭补,车补。多久能出结果?旷视2025届校招启动啦!这是面向全球高校毕业生推出的一项尖端人才招募计划九个职位,两大城市米哈游招聘期待最优秀的你与我们一起共同打造AI新纪元!【网申地址】https://app.mokahr.com/campus_apply/megviihr/38642?recommendCode=DS87a6UM#/jobs【内推码】DS87a6UM投递的uu留言下姓名缩写和岗位,我会尽力跟进~(czy+产品经理)
旷视
|
校招
|
81个岗位
点赞 评论 收藏
分享
评论
8
55
分享
牛客网
牛客企业服务