zoukankan      html  css  js  c++  java
  • [Lydsy1806月赛] 超速摄像头

    题面在这里!

        可以证明只要叶子两两路径满足条件即可,于是便可以贪心啦,从最外圈(叶子)开始一层一层选,选出前 k/2 层。

        如果k是奇数的话,还可以多选一个不是前 k/2 层的点。

    #include<bits/stdc++.h>
    #define ll long long
    using namespace std;
    #define pb push_back
    const int N=1e6+5;
    
    inline int read(){
        int x=0; char ch=getchar();
        for(;!isdigit(ch);ch=getchar());
        for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
        return x;
    }
    
    vector<int> g[N];
    queue<int> q;
    int n,k,len[N],ans,l,d[N];
    bool flag;
    
    inline void solve(){
    	for(int x;!q.empty();q.pop()){
    		x=q.front();
    		for(int j=g[x].size()-1,i;j>=0;j--){
    			i=g[x][j]; if((--d[i])==1) q.push(i),len[i]=len[x]+1;
    		}
    	}
    }
    
    int main(){
    	n=read(),k=read(),l=k>>1;
    	for(int i=1,uu,vv;i<n;i++){
    		uu=read(),vv=read(),d[uu]++;
    		g[uu].pb(vv),g[vv].pb(uu),d[vv]++;
    	}
    	
    	for(int i=1;i<=n;i++) if(d[i]==1) q.push(i),d[i]--;
    	solve();
    	for(int i=1;i<=n;i++) if(len[i]<l) ans++; else flag=1;
    	
    	ans+=(k&1)&flag,printf("%d
    ",ans);
    	return 0;
    }
    
  • 相关阅读:
    thinkphp5ajax分頁&&搜索後分頁
    yii框架多文件上傳
    Redis:Linux安装与使用
    JSP使用Struts2标签库报错
    Dubbo:3
    Dubbo:1
    Dubbo:2
    zookeeper:master选举
    zookeeper:分布式锁简单实现(JavaApi)
    zookeeper:Curator操作节点
  • 原文地址:https://www.cnblogs.com/JYYHH/p/9275400.html
Copyright © 2011-2022 走看看