#include<vector>constint N =200010;int p[N];intfind(int x){if(p[x]!= x) p[x]=find(p[x]);return p[x];}classSolution{public:boolvalidPath(int n, vector<vector<int>>& sides,int start,int end){for(int i =1; i <= n; i ++) p[i]= i;for(auto& vec : sides){int a = vec[0], b = vec[1];
p[find(a)]= p[find(b)];}if(find(start)==find(end))returntrue;returnfalse;}};
2
#include<iostream>#include<vector>#include<algorithm>#include<cmath>usingnamespace std;classSolution{public:bool flag =false;floatop(int a,int b,int c){if(c ==1)return a+b;if(c ==2)return a-b;if(c ==3)return a*b;if(c ==4){if(b ==0){ flag =true;return0;}elsereturn a/b;}return0;}booljudge(float a){if(abs(a -24)<0.0001)returntrue;returnfalse;}boolcompute24(vector<int>& num){int len = num.size();for(int i=0; i<len; i++)for(int j=0; j<len; j++)for(int k=0; k<len; k++){if(i == j || i == k || j == k)continue;float ans;for(int c=1; c<=4; c++){
ans =op(num[i], num[j], c);if(flag){flag =false;continue;}for(int d=1; d<=4; d++){
ans =op(ans, num[k], d);if(flag){flag =false;continue;}if(judge(ans))returntrue;}}}returnfalse;}};