「Summary」2022-06-25 做题记录

updated…

2022-06-25

CF1301F

link

中转!扩展!

看到具有相同性质之间的块可以有联系 缩点 / 整体处理。
对于要求答案可以进行拆分,找中转点,小扩大。

CF1209F

link

十进制可以拆成一位一位的处理

bfs 贪心时注意更新方式。在有距离相等的点的时候,应该将它们打包,同时对他们的权值为 19 的边进行更新。 所以 bfs 应该这样写
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
vector<vector<int> > que1, que2;
void bfs() {

vector<int> tmp;
tmp.push_back(1), vis[1] = 1;
que1.push_back(tmp);

while (1) {

if (que1.empty()) break;
for (auto fr : que1) {

for (int len = 0; len < 10; len++) {

tmp.clear();

for (auto u : fr) {
for (auto v : G[u][len]) if (!vis[v])
vis[v] = 1, dis[v] = (dis[u] * 10 + len) % Mod, tmp.push_back(v);
}

if (!tmp.empty()) que2.push_back(tmp);

}

}

que1 = que2, que2.clear();

}

}

CF698D

link

等价的两个数据范围差距大时注意利用小的,改变枚举顺序;

这题有依明显的依赖关系的问题可以递归。
若可以抽象成图,可以建 DAG 解决,该题可以递归判断解的可行性。


The End
「Ô mon âme, n'aspire pas à la vie immortelle, mais épuise le champ du possible.」