Day 1
题单:蓝桥杯模拟赛 4
没太多想思考的题。有些题做不出来,却也因为无聊而不想多思考。
Day 3
题单:SMU Winter 2023 Round #13 (Div.2)
很明显的动态规划。这里我想到用位运算来记录状态——对于这一点我还挺得意的。
需要注意的是:限制循环的条件以避免浪费太多时间在无意义的循环里。
以下是 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 爷说算法竞赛很无聊了,确实就是像他说的那样——刷题,刷题,还是刷题。
也许我还喜欢思考算法,但我很难喜欢上以比赛名次为目标的算法竞赛了。
有必要思考一下实践、理论与竞赛算法之间的关系。