首页 > 其他分享 >Codeforces Round #756 (Div. 3) E1

Codeforces Round #756 (Div. 3) E1

时间:2022-10-21 22:01:01浏览次数:86  
标签:return dfs2 int res Codeforces dfs fa Div E1

E1. Escape The Maze (easy version)

我们显然遍历根节点到叶结点的同时维护最短距离
然后在return的时候看该点距离是否大于最近的朋友的距离
要是大于的话 我们显然可以走过去 否则我们把这条路叉掉
最后看他能不能到达一个根节点即可

#include <bits/stdc++.h>
using namespace std;
const int N = 2e5+10;
const int M = 998244353;
const int mod = 1e9+7;
#define int long long
int up(int a,int b){return a<0?a/b:(a+b-1)/b;}
#define endl '\n'
#define all(x) (x).begin(),(x).end()
#define YES cout<<"YES"<<endl;
#define NO cout<<"NO"<<endl;
#define _ 0
#define pi acos(-1)
#define INF 0x3f3f3f3f3f3f3f3f
#define fast ios::sync_with_stdio(false);cin.tie(nullptr);
bool st[N],is[N];
int d[N];
vector<int>g[N];
int n,k;
int dfs(int u,int fa){
    int res=INF;
    if(d[u]>=res||is[u])st[u]=1;
    for(auto v:g[u]){
        if(v==fa)continue;
        d[v]=d[u]+1;
        int t=dfs(v,u);
        res=min(res,t);
    }
    return (is[u]?1:res+1);
}
bool dfs2(int u,int fa){
    for(auto v:g[u]){
        if(st[v])continue;
        if(v==fa)continue;
        if(g[v].size()==1)return 1;
        if(dfs2(v,u))return 1;
    }
    return 0;
}
void solve(){
    cin>>n>>k;
    for(int i=1;i<=n;i++)d[i]=st[i]=is[i]=0,g[i].clear();
    for(int i=1;i<=k;i++){
        int x;cin>>x;
        is[x]=1;
    }
    for(int i=1;i<n;i++){
        int u,v;cin>>u>>v;
        g[u].push_back(v);
        g[v].push_back(u);
    }
    dfs(1,0);
    puts(dfs2(1,0)?"YES":"NO");
}
signed main(){
    fast
    int t;t=1;cin>>t;
    while(t--) {
        solve();
    }
    return ~~(0^_^0);
}

标签:return,dfs2,int,res,Codeforces,dfs,fa,Div,E1
From: https://www.cnblogs.com/ycllz/p/16814922.html

相关文章

  • 解决oracle18c没有hr用户
    1.查找系统变量ORACLE_HOME的值2.按照路径寻找sql文件ORACLE_HOME变量值+demo\schema\human_resources3.把hr_main.sql脚本文件放在此处4.登入sys用户执行@+路径+文......
  • Heidi and Library (hard) | CodeForces 802C最大流最小费用
    神仙题,想了两节ds课没想出来,跑到奇怪的犄角旮旯去了还是没法搞一个满意的模型看了洛谷黑题啊..释然了思路和细节在代码//LUOGU_RID:90857083#include<bits/stdc++.h......
  • Codeforces Round #760 E
    E.Singers'Tour我们显然可以推式子b[i]=a[i]+2a[i+1]+3a[i+1]....b[i+1]=na[i]+a[i+1]+2a[i+2]....这样b[i+1]-b[i]=-n*a[i]+(a[i]+a[i+1]+....+a[n])我们显然......
  • div 内容生成图片并下载
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="v......
  • Educational Codeforces Round 83 (Rated for Div. 2) C. Adding Powers(进制转换)
    https://codeforces.com/contest/1312/problem/C题目大意:给定一个长度为n的数组a,在给定一个底数k。一开始数组元素全部都是0,我们每一个时间i可以选择一个下标下的数字......
  • Educational Codeforces Round 138 (Rated for Div. 2) ABC(二分)
    只能说这场的出题人不适合我食用,ABC都读了假题,离谱啊~A.CowardlyRooks题目大意:给定一个棋盘n*n的大小,左下角的顶点在(1,1);给定了棋盘格上的m个棋子坐标。这m个棋子......
  • 「题解」Codeforces 1730F Almost Sorted
    给定一个长度为\(n\)的置换\(p\),以及一个正整数\(k\).对于一个置换\(q\),要求对于所有满足\(1\leqi<j\leqn\)的\(i,j\),有以下不等式成立:\[p_{q_i}\leqp_{q_j}+......
  • 用好 DIV 和 API,在前端系统中轻松嵌入数据分析模块
    在数字化转型潮流席卷各大行业的今天,越来越多的企业开始重视BI(商业智能)技术的部署和应用,期望从不断增长的数据资源中获得更多业务价值,从而提升利润、控制风险、降低成本。B......
  • Codeforces Round #762 (Div. 3) E
    E.MEXandIncrements我们一看数据n个数还要计算n+1一个mex显然不能暴力我们考虑后面的i可以由前面的贪心的做一次操作转移过来所以我们记录一个a数组放着多出来的......
  • Codeforces1695 D1.+D2 Tree Queries
    题意给一个n个点的无向图,其中有一个隐藏点X,可以进行一组询问S来确定S是n个节点中的哪个点。S包括k个询问节点。询问返回的值也为k个值,每个值为X点到每个询问节点的最短路......