1 solutions

  • 2
    @ 2025-4-26 21:25:22

    观察到 n200n\le200,所以暴力都可以过。

    唯一要注意的一点就是 AABB 并不能保证 BB 也到 AA,用 DFS 暴力乱搞一下就过了。

    代码如下:

    #include <bits/stdc++.h>
    using namespace std;
    
    int ans, n, vis[205];
    
    struct node
    {
    	int x, y, p;
    } a[205];
    
    double dis(node a, node b)
    { 
    	return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y));
    }
    
    void dfs(int x)
    {
    	for (int i = 1; i <= n; i++)
    	{
    		if (dis(a[x], a[i]) <= a[x].p && !vis[i])
    		{
    			vis[i] = 1;
    			dfs(i);
    		}
    	}
    }
    
    int main()
    {
    	cin >> n;
    	for (int i = 1; i <= n; i++) cin >> a[i].x >> a[i].y >> a[i].p;
    	for (int i = 1; i <= n; i++)
    	{
    		int cnt = 0;
    		memset(vis, 0, sizeof(vis));
    		vis[i] = 1;
    		dfs(i);
    		for (int j = 1; j <= n; j++) 
    			if (vis[j])
    				cnt++;
    		ans = max(ans, cnt);
    	}
    	cout << ans << endl;
    	return 0;
    }
    
    • 1

    Information

    ID
    2480
    Time
    1000ms
    Memory
    125MiB
    Difficulty
    3
    Tags
    # Submissions
    6
    Accepted
    3
    Uploaded By