19 沈阳网络赛 B. Dudu's maze (dfs 并查集)

传送门

题意:n个点的无向图,m条路径 (n-1

思路:首先dfs所有和1点相连的点,记录下和1点连通块相连的怪兽的点,之后遍历这些怪兽点,更新最大值。

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#define ull unsigned long long
#define Mod(x) (x+mod)%mod
#define lson l,mid,rt<<1
#define rson mid+1,r,rt<<1|1
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define mems(a,b) memset(a,b,sizeof(a))
using namespace std;
typedef long long ll;
const ll mod=1e9+7;;
const int N=1e5+5;
const double pi=acos(-1);
const int inf=0x3f3f3f3f;
const int M=50000+5;
int num;
int vi[N],vis[N],fi[N];
int ans[N],tot;
vectorve[N];
void dfs(int u,int fa)
{
    vis[u]=1;
    num++;
    for(int i=0;if)
                f=ff;
        }
        printf("%.6f\n",ljt+f);
    }
}

 

你可能感兴趣的:(【DFS/BFS】,【并查集/种类/带权】,【19区域赛网络赛】)