zoukankan      html  css  js  c++  java
  • [CodeForces]981C Useful Decomposition

    李煜东dalao今天给我们讲课了QwQ
    ppt上一道题
    英文题说一下题意吧,以后又看不懂了
    将一棵树分割成多个简单路径,每个边只能在一条路径上,但至少有一个公共节点。
    输出简单路径分割方法/No
    由题易知,如果图不是一个菊花图的话,想搞成题意的样子至少要有环或者有的路径共用。
    想到这儿代码搞一搞就行了

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <vector>
    using namespace std;
    const int N=1e5;
    vector<int>s;
    int n,ecnt,head[N],mx=0,ct;
    struct Edge{
    	int to,nxt,val;
    }e[N<<1];
    int du[N];
    void add(int bg,int ed) {
    	e[++ecnt].nxt=head[bg];e[ecnt].to=ed;head[bg]=ecnt;
    }
    int main() {
    	scanf("%d",&n);
    	int cnt=0;
    	for(int i=1,u,v;i<n;i++) scanf("%d%d",&u,&v),add(u,v),add(v,u),du[u]++,du[v]++;
    	for(int i=1;i<=n;i++) {
    		if(mx<du[i]) mx=du[i],ct=i;
    		if(du[i]>2 ) cnt++;
    		else if(du[i]==1)s.push_back(i);
    		if(cnt>1) {printf("No");return 0;}
    	}
    	puts("Yes");
    	if(!cnt) {
    		puts("1");
    		printf("%d %d",s[0],s[1]);return 0;
    	}
    	printf("%d
    ",s.size());
    	for(int i=0;i<s.size();i++) printf("%d %d
    ",ct,s[i]);
    }
    
    我是咸鱼。转载博客请征得博主同意Orz
  • 相关阅读:
    Pascal's Triangle II
    Pascal's Triangle
    Best Time to Buy and Sell Stock II
    Best Time to Buy and Sell Stock
    Populating Next Right Pointers in Each Node
    path sum II
    Path Sum
    [转载]小波时频图
    [转载]小波时频图
    [转载]Hilbert变换及谱分析
  • 原文地址:https://www.cnblogs.com/sdfzhsz/p/9275293.html
Copyright © 2011-2022 走看看