zoukankan      html  css  js  c++  java
  • codefoces 1405 D Tree Tag

    https://codeforces.com/contest/1405/problem/D

    我是zz,看错题了,其实就两种可能

    1.开局直接被抓住  disA >= dis(a,b)

    2.逃跑,但是如何跑呢?我们发现,db >= 2*da + 1就能跑的了,因为db小的化迟早会被抓住,放风筝就好了,看了题解发现自己真是个sb

    #include<iostream>
    #include<cstring>
    #include<vector>
    using namespace std;
    typedef long long ll;
    const int maxn = 2e5+11;
    vector<int>G[maxn];
    
    int list[maxn];
    int cns[maxn];
    void add(int x,int y){
    	G[x].push_back(y);
    }
    int flag = 0;
    
    int vis[maxn];
    int dp[maxn];
    
    int dis;
    
    int dfs(int x,int fa){
    	int cns = 0;
    	for(int i=0;i<G[x].size();i++){
    		int p = G[x][i];
    		if(p == fa) continue;
    		dfs(p,x);
    		dp[x] = max(dp[x] ,dp[p] + 1);
    		cns = max(dp[p],cns);
    	}
    	int f = 0;
    	dis = max(dis,cns+2);
    	for(int i=0;i<G[x].size();i++){
    		int p = G[x][i];
    		if(p == fa) continue;
    		if(cns == dp[p] && f) dis = max(dis,dp[p] + cns + 3);
    		if(cns > dp[p]) dis = max(dis,dp[p] + cns + 3);
    		
    		if(cns == dp[p]) f = 1;
    	}
    	return 0;
    }
    int dep;
    int n,a,b,aa,bb;
    int dfs(int x,int fa,int d){
    	if(x == b){
    		dep = d;
    	}
    	for(int i=0;i<G[x].size();i++){
    		int p = G[x][i];
    		if(p == fa) continue;
    		dfs(p,x,d+1);
    	}
    	return 0;
    }
    int main(){
    	int t;
    	cin>>t;
    	while(t--){
    		
    		cin>>n>>a>>b>>aa>>bb;
    		for(int i=0;i<=n;i++){
    			G[i].clear();
    			vis[i] = 0;
    			dp[i] = 0;
    		}
    		flag = 0;
    		int x,y;
    		for(int i=1;i<n;i++){
    			cin>>x>>y;
    			add(x,y);
    			add(y,x);
    		}
    		dis = 0;
    		dfs(1,-1);
    		dfs(a,-1,0);
    		if(dep <= aa){
    			cout<<"Alice
    ";
    		}
    		else{
    			dis--;
    			if(dis >= 2*aa + 1 && bb >= 2*aa+1){
    				cout<<"Bob
    ";
    			}
    			else{
    				cout<<"Alice
    ";
    			}
    		}
    		
    	}
    	return 0;
    } 
    

      

    寻找真正的热爱
  • 相关阅读:
    Understand 学习
    2021年1月
    查看所有请求
    DB2日期和时间函数汇总
    .getClass和.class
    继承和实现接口的区别
    java8 stream
    Lambda表达式详解
    SQL语句小知识---XML文件中的 CDATA语法
    Java--mapper.xml中常用SQL标签
  • 原文地址:https://www.cnblogs.com/lesning/p/13648558.html
Copyright © 2011-2022 走看看