题型:28道单选,62分,2道多选,8分,3道编程题,10分
选择题比较简单,考的都是一些Java,计网方面的基础知识
编程题第一题用的BigInteger保存数据,通过率64%,不知道为啥;第二题用的暴力解法,公因数只考虑了整数倍的情况,通过率73%,第三题没时间做了。感觉烽火应该寄了。
编程题:
1.* 固定和
* 时间限制: 3000MS
* 内存限制: 589824KB
* 题目描述:
* 现在给出三个数字a,b和c,你可以在保证a+b不变的情况下对两数进行调整,设调整以后是a’和b’,
* 请问在使得a’/c+b’/c(均为整数除法)最大的情况下,最小的|a’-a|+|b’-b|是多少。
* 输入描述
* 输入仅包含三个正整数,a,b和c,中间用空格隔开。(1<=a,b,c<=10^18)
* 输出描述
* 输出仅包含一行,即最小的|a’-a|+|b’-b|值。
* 样例输入
* 5 8 3
* 样例输出
* 2
2. * 子矩阵之和
* 时间限制: 5000MS
* 内存限制: 1048576KB
* 题目描述:
* 给定一个n * m的矩阵,定义矩阵第 i 行,第 j 列的值为gcd(i, j)。
* 定义一个子矩阵的和是其中所有元素之和,现在需要求所有 k * k 的子矩阵的和的总和。
* 说明:gcd为最大公因数
* 输入描述
* 一行输入三个空格隔开的整数 n, m, k 表示矩阵的大小和子矩阵的大小。( 1≤n,m≤5e3 , 1≤k≤min(n,m) )
* 输出描述
* 所有k * k的子矩阵的和。
* 样例输入
* 3 3 2
* 样例输出
* 22
* 提示
* 进行gcd处理后可知矩阵为:
* 1 1 1
* 1 2 1
* 1 1 3
* 需要求其中所有为2*2子矩阵和的总和,共有4个符合条件的子矩阵,子矩阵的和分别为5,5,5,7 ;故总和为22
3.* 最大输出差
* 时间限制: 5000MS
* 内存限制: 1048576KB
* 题目描述: 在一款 RPG 游戏中,双方都有自己的技能,数量都是 n 个,每回合各自随机发动一个未发动过的技能(回合数不能超过技能数)。每个技能的伤害都是基础值乘伤害倍率,没有任何防御属性。你永远有最好的运气,你的对手永远有最差的运气,你可以自由决定回合数(最小为 0,最大等于技能数量)。在此条件下,你希望造成最大的输出差(你的总输出减去对方的总输出)。请计算这个最大输出差。
* 题目会给一组双方的技能基础伤害,和若干组双方的伤害倍率,对于每组伤害倍率,你需要计算一次答案。
* 输入描述:第一行两个空格隔开的数字 n, q, 1 <= n, q <= 30000; 第二行 n 个空格隔开的数字,表示你的各个技能的基础伤害; 第三行 n 个空格隔开的数字,表示你的对手的各个技能的基础伤害;后面 q 行,每行两个空格隔开的数字,分别表示你与对手的伤害倍率
* 输出描述
* q 行,每行一个整数,表示对于每组伤害倍率,你可以达到的最大输出差。
* 样例输入
* 5 3
* 3 2 1 5 6
* 8 1 4 2 3
* 1 1
* 1 2
* 2 1
* 样例输出
* 8
* 5
* 22
#23届秋招##23届校招##烽火通信笔试##Java求职#