A. Vasya and the Bus
- 根据\(n,m\)是否为0分类讨论下。
B. Surrounded
- 判断两圆是否有交点,否则构造的圆与两圆相切。
C. STL
- 看代码比较清楚。
void type() {
if (cin >> str) {
ans += str;
if (str == "pair")
ans += "<", type(), ans += ",", type(), ans += ">";
} else {
flag = 1;
}
}
D. Non-Secret Cypher
- two pointer
- 对于固定的左端点\(l\),找到最小的右端点满足题意,显然两个指针都是单调递增的。
E. Counter Attack
- 在补图中,当前点\(u\)每次与一段连续的点均有连边,如果两区间有连边,则需要合并两个连通块。
- 用线段树维护区间覆盖情况。
- 传递覆盖信息时如果当前区间已经被完全覆盖了,显然不需要往下继续传递。