1 条题解
-
0
#include #include #include using namespace std;
const int MAXN = 2005; int x[MAXN], y[MAXN]; bool vis[MAXN]; // 标记是否感染
int main() { int N, D; cin >> N >> D; int D2 = D * D; // 距离平方阈值
for (int i = 1; i <= N; ++i) { cin >> x[i] >> y[i]; } queue<int> q; vis[1] = true; q.push(1); // BFS 遍历传播 while (!q.empty()) { int u = q.front(); q.pop(); for (int v = 1; v <= N; ++v) { if (!vis[v]) { long long dx = x[u] - x[v]; long long dy = y[u] - y[v]; long long dis2 = dx * dx + dy * dy; if (dis2 <= D2) { vis[v] = true; q.push(v); } } } } // 输出结果 for (int i = 1; i <= N; ++i) { if (vis[i]) cout << "Yes\n"; else cout << "No\n"; } return 0;}
- 1
信息
- ID
- 23
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 298
- 已通过
- 35
- 上传者