行业知识
2023第十四届蓝桥杯国赛 C/C++ 大学 B 组 (赛后记录)
2023 第十四届蓝桥杯国赛 C / C + + 大学 B 组 2023第十四届蓝桥杯国赛 C/C++ 大学 B 组 2023第十四届蓝桥杯国赛C/C++大学B组
- 点我查看题目PDF
前言
由于是学校期末复习周, 很多算法没有复习, 结果考了一堆板题 (悲
赛后代码记录
A题 子 2023
直接跑暴力就行, 应该没啥问题
#include #define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define de(a) cout '2', '0', '2', '3'};void dfs(int u, int cnt) { if (cnt == 4) { res++; return; } if (u = sz(s)) return; if (s[u] == op[cnt]) dfs(u + 1, cnt + 1); dfs(u + 1, cnt);}string get(string s) { string res; for (auto &c: s) { if (c == '2' || c == '0' || c == '3') res += c; } return res;}void solve() { for (int i = 1; i IOS; int T = 1; // cin T; cin.get(); while (T --) solve(); return 0;} for (int i = 2; i if (!vis[i]) primes[cnt++] = i; for (int j = 0; i * primes[j] vis[i * primes[j]] = true; if (i % primes[j] == 0) break; } }}void solve() { get_p(); int res = 0; for (int i = 0; iF题 删边问题
没复习缩点, 暴力都很难写, 直接输出 -1 了, 哭***, 等复习板子之后再补, 感觉缩点之后很容易求, 板题 + 1
G题 AB 路线
很明显的分层图, 但由于没有复习算法, 压根没想起来有分层图这个玩意, 赛时骗的分, 赛后很快就写出了, 再次悲伤, 代码很板, 板题 + 1
- 思考 (直接 bfs 是否满足最短路呢)
#include #define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define de(a) cout -1, 0, 1, 0}, dy[] = {0, 1, 0, -1};int bfs(int sx, int sy) { memset(dist, 0x3f, sizeof dist); dist[sx][sy][1] = 0; queue auto [x, y, c] = q.front(); q.pop(); if (x == n && y == m) return dist[n][m][c]; bool turn = false; // 是否应该换字母走 if (c == k) turn = true; for (int i = 0; i > n >> m >> k; for (int i = 1; i > g[i] + 1; cout IOS; int T = 1; // cin > T; cin.get(); while (T --) solve(); return 0;}H题 抓娃娃
狠狠的吐槽题面, 那么重要的条件为什么不直接在题面中提出来, 而是隐藏在下一页的数据范围里, 本来想过这个做法, 但被自己推翻了, 结果数据中不存在能推翻这个做法的情况…赛时无奈写的暴力, 狠狠的悲伤
思路: 由于数据范围中给了一个很重要的条件, 就是查询的区长度间一定大于所有的线段, 也就是说, 只要线段的中点落在查询的区间, 那么他一定是被包含的, 由于计算中点需要除法, 容易出精度问题, 我们把所有的坐标映射成原来的两倍, 那么中点一定也是整数坐标了, 然后跑个前缀和即可
#include #define IOS ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)#define de(a) cout cin n m; for (int i = 1; i int l, r; cin > l >> r; s[l + r]++; // 中点坐标其实是 (l + r) / 2, 但映射成了 l + r } for (int i = 1; i > L >> R; cout IOS; int T = 1; // cin T; cin.get(); while (T --) solve(); return 0;}
I题 拼数字
不会, 特判了几个暴力跑出来的数据, 其他的都输出的 -1
- 等待大神题解
J题 逃跑
看见有概率果断没写, 输出样例了
总结
- 有原题很离谱, 板题也好多, 评价是不如省赛
- 发挥不太好, 希望有奖 (求求
- 等待大神题解
- 思考 (直接 bfs 是否满足最短路呢)
上一篇:cf怎么选择服务器失败?
下一篇:怎么租用服务器跑软件?