- 陈泽文 的博客
Day1(2025)
- @ 2025-7-15 18:45:23
A.矩阵转置
输入H行W列的矩阵A。i行j列的数为,定义另一个矩阵B,求B矩阵
拿二维数组做出来发现数据是1e5,那么二维数组的定义就是: x[1e5][1e5],但是数组的最大值为,而,所以二维数组是会报错的。
所以我们不能用静态数组,要用动态数组(vector)。
先输入矩阵A,再用题目给的方法读入矩阵B,最后输出矩阵B
C.暑假打工
现在有N份一次性工作可供选择。如果你接受并完成第i份工作,你将在完成后的第天获得元的报酬。 每天你最多可以接受并完成其中一份工作。 但是,你不能重复接受已经做过的工作。 求在从今天起不超过M天的时间内,你能获得的最大总报酬。 你可以从今天就开始工作。
用贪心贪一下:枚举每一天,每一天都选择当天可以完成的报酬最高的工作。用排序完了的数组来找当前报酬最高且不会超时的工作。
如果我们用优先队列的话就不用排序了(^v^)。
E.阶乘与倍数
给定一个大于等于2的整数K。找到最小的正整数N,使得N!是K的倍数。 这里,N!表示N的阶乘。在本问题的约束条件下,可以证明这样的N总是存在。
p是k的一个质因数,e是p出现的次数。我们用二分查找从0到p×e之间找答案N。
F.黄金商人
在KK王国中,有N个城镇,编号为城镇1到城镇N。王国中还有M条道路,编号为道路1到道路M。通过道路i,你可以从城镇 前往城镇 ,但不能反向通行。题目保证。黄金在这个王国中交易活跃。在城镇i,你可以以元的价格购买或出售1公斤黄金。
KK是一名旅行商人,他计划在某个城镇购买1公斤黄金,通过一条或多条道路运输,并在另一个城镇出售这1公斤黄金。请计算这一计划中可能获得的最大利润(即出售价格减去购买价格)。
用拓扑排序来对路线进行排序,再用BFS来一个一个模拟,直到全部找完