1.11 bilibili求职攻略-理工科版本
1.11.1 校园招聘时间流程
网申 |
机考 |
面试 |
offer |
8月-9月 |
8月-9月 |
8月-9月 |
9月-10月 |
1.11.2 薪资爆料
岗位 |
地点 |
学历 |
薪资范围(年薪) |
24届Java开发 |
北京 |
本科 |
15-40K * 14薪 |
Java开发(实习) |
北京 |
本科 |
200-500元/天 |
前端开发(实习) |
北京 |
本科 |
200-500元/天 |
人工智能算法实习生 |
上海 |
本科 |
300-400元/天 |
*数据来源 牛客用户,更多详细信息可到牛客查询
1.11.3 面试真题
1、 漫展打卡奖励
【题目描述】
某次漫展,已知有n个打卡点,每个打卡点的活动需要 m_i 分钟完成,完成后获得奖励点 r_i,已经打卡过的点不能再去。
需要在规定 m 分钟内完成,尽可能多的收获奖励点,求获得最多的奖励点数。
输入描述:
第一行两个整数,打卡点的数量 n 和限制时间 m
第 2 到 1 + n 行,每行两个整数 m_i,r_i
数字以空格分割,其中 0 < n <= 100,1 <= m <= 120,1 <= m_i <= 10,1 <= r_i <= 100
输出描述:
整数, 最大的奖励点数
输入样例:
4 6
2 4
2 35
1 43
2 10
输出样例:
88
【解题思路】
01背包问题
【参考代码】
import sys
n, m = map(int, sys.stdin.readline().strip().split(" "))
points = []
for i in range(n):
m_i, r_i = map(int, sys.stdin.readline().strip().split(" "))
points.append([m_i, r_i])
#print(points)
# dp[i][j]: 当前已考虑i之前的所有点,剩余时间为j时的得分
dp = [[0]*(m+1) for _ in range(n+1)]
for i in range(1, n+1):
for j in range(1, m+1):
# 剩余时间不足
m_i, r_i = points[i-1][0], points[i-1][1]
if j < m_i:
dp[i][j] = dp[i-1][j]
else:
dp[i][j] = max(dp[i-1][j], dp[i-1][j - m_i] + r_i)
print(dp[n][m])
2、 整数转罗马数字
【题目描述】
罗马数字包含以下七
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
牛客独家出品,理工科求职必备攻略,适合岗位: 软件开发、数据库分析、软件测试、前端后端开发