第 314 场周赛
Date: 2022-10-09(高铁上参加)
A 处理用时最长的那个任务的员工
暴力
B 找出前缀异或的原始数组
根据异或的可消性,从后往前推导即可
C 使用机器人打印字典序最小的字符串
机器人就是栈,当栈中元素小于等于当前后缀的最小值时,可以弹出。时间复杂度为 \(O(n)\)
D 矩阵中和能被 K 整除的路径
动态规划,复杂度 \(O(nmk)\)
class Solution {
public:
int numberOfPaths(vector<vector<int>>& g, int k) {
int n = g.size(), m = g[0].size();
const int MOD = 1E9 + 7;
vector<vector<vector<int>>> d(n + 1, vector<vector<int>>(m + 1, vector<int>(k, 0)));
d[0][1][0] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
int val = g[i - 1][j - 1];
for (int p = 0; p < k; p++) {
int x = (val + p) % k;
d[i][j][x] += (d[i - 1][j][p] + d[i][j - 1][p]) % MOD;
d[i][j][x] %= MOD;
}
}
}
return d[n][m][0];
}
};
本文访问 次