Day 1

题单:蓝桥杯模拟赛 4

没太多想思考的题。有些题做不出来,却也因为无聊而不想多思考。

Day 3

题单:SMU Winter 2023 Round #13 (Div.2)

F. kita 买礼物

很明显的动态规划。这里我想到用位运算来记录状态——对于这一点我还挺得意的。

需要注意的是:限制循环的条件以避免浪费太多时间在无意义的循环里。

以下是 AC 代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <bitset>
#include <vector>
std::bitset<100001> exist;
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
exist.set(0);
int n, m;
std::cin >> n >> m;
std::vector<int> value(n), num(n);
for (int &i : value) std::cin >> i;
for (int &i : num) std::cin >> i;
for (int i = 0; i < n; i++) {
for (int j = 1; j <= num[i] && j * value[i] <= m; j++) {
exist |= exist << value[i];
}
}
exist <<= (100001 - m - 1);
std::cout << exist.count() - 1;
return 0;
}

Day 5

题单:SMU Winter 2023 Round #14 (Div.1+2)

做到后面直接开摆······

总结

我有点理解为什么那个 OI 爷说算法竞赛很无聊了,确实就是像他说的那样——刷题,刷题,还是刷题。

也许我还喜欢思考算法,但我很难喜欢上以比赛名次为目标的算法竞赛了。

有必要思考一下实践、理论与竞赛算法之间的关系。