待更……
- [A - Last Two Digits](https://atcoder.jp/contests/abc254/tasks/abc254_a)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 分析
- 代码
- [B - Practical Computing](https://atcoder.jp/contests/abc254/tasks/abc254_b)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 分析
- 代码
- [C - K Swap](https://atcoder.jp/contests/abc254/tasks/abc254_c)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 分析
- 代码
- [D - Together Square](https://atcoder.jp/contests/abc254/tasks/abc254_d)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 分析
- 代码
- [E - Small d and k](https://atcoder.jp/contests/abc254/tasks/abc254_e)
- 题目大意
- 输入格式
- 输出格式
- 样例
- 分析
- 代码
B - Practical Computing 题目大意 输入格式 输出格式 样例 分析 代码
C - K Swap 题目大意 输入格式 输出格式 样例 分析 代码
D - Together Square 题目大意 输入格式 输出格式 样例 分析 代码
E - Small d and k 题目大意 输入格式 输出格式 样例 分析
注意这题数据范围,这是解体的关键,只有 0 ≤ k ≤ 3 0le kle 3 0≤k≤3,且顶点度数 ≤ 3 ~le3 ≤3,因此根据乘法原理,一次查询最大符合条件的顶点数为 3 3 + 1 = 28 3^3+1=28 33+1=28个。因此,使用简单的暴力 BFS text{BFS} BFS即可通过。详见代码。
代码注意dis数组的清零操作,无需全部清零,只需把刚刚改过的清零即可。
#include#include #define maxn 150005 using namespace std; vector G[maxn]; int dis[maxn]; int main() { int n, m; scanf("%d%d", &n, &m); while(m--) { int a, b; scanf("%d%d", &a, &b); G[a].push_back(b); G[b].push_back(a); } int Q; scanf("%d", &Q); for(int i=1; i<=n; i++) dis[i] = -1; while(Q--) { int x, k; scanf("%d%d", &x, &k); vector ans; queue q; q.push(x); dis[x] = 0; while(!q.empty()) { int v = q.front(); q.pop(); int d = dis[v]; if(d <= k) ans.push_back(v); if(++d > k) continue; for(int u: G[v]) if(dis[u] == -1) { dis[u] = d; q.push(u); } } int res = 0; for(int v: ans) res += v, dis[v] = -1; printf("%dn", res); } return 0; }



