3 条题解

  • 11
    @ 2021-10-10 16:10:56
    /*****************************************
    备注:
    ******************************************/
    #include <queue>
    #include <math.h>
    #include <stack>
    #include <stdio.h>
    #include <iostream>
    #include <vector>
    #include <iomanip>
    #include <string.h>
    #include <algorithm>
    using namespace std;
    #define LL long long
    const int N = 2e6 + 10;
    const int INF = 0x3f3f3f3f;
    int to[N] , ne[N] , head[N] , id ,a[N];
    void add(int u , int v)
    {
    	to[++id] = v;
    	ne[id] = head[u];
    	head[u] = id;
    }
    int n , q;
    int main()
    {
    	scanf("%d%d",&n,&q);
    	for(int i = 1, u ,v ;i < n ; i++)
    	{
    		scanf("%d%d",&u,&v);
    		add(u,v);
    		add(v,u);
    	}
    	while(q--)
    	{
    		int m;
    		scanf("%d",&m);
    		int sum = 0;
    		for(int i = head[m] ; i ; i = ne[i])
    			a[sum++] = to[i];
    		printf("%d ",sum);
    		sort(a,a+sum);
    		for(int i = 0 ; i < sum ; i++)
    			printf("%d ",a[i]);
    		puts("");
    	}
    	return 0;
    }
    
    • 2
      @ 2022-8-7 12:01:59
      #include<bits/stdc++.h>
      #include <iostream>
      #include <algorithm>
      using namespace std;
      const int N =2e6 + 10;
      int to[N] , ne[N] , head[N] , id ,a[N];
      void add(int u ,int v)
      {
      	to[++id] = v;
      	ne[id] = head[u];
      	head[u] = id;
      }
      int n , q;
      int main(){
      	scanf("%d%d" , &n,&q);
      	for(int i = 1,u,v;i < n;i++){
      		scanf("%d%d" , &u,&v);
      		add(u , v);
      		add(v , u);
      	}
      	while(q--){
      		int m ;
      		scanf("%d" , &m);
      		int sum = 0;
      		for(int i = head[m] ; i ; i = ne[i])
      			a[sum++] = to[i];
      		printf("%d " , sum);
      		sort(a,a+sum);
      		for(int i = 0 ;i < sum ;i++)
      			printf("%d " , a[i]);
      		puts("");
      	}
      }
      • 0
        @ 2021-10-10 16:12:17
        #include<bits/stdc++.h>
        
        using namespace std;
        vector<int>v[200000];
        struct node{
        	int l,r;
        }a[200000];
        bool cmp(node x,node y){
        	return x.l==y.l?x.r<y.r:x.l<y.l;
        }
        int main(){
        	int n,q;cin>>n>>q;
        	n--;
            for(int i=1;i<=n;i++){
            	cin>>a[i].l>>a[i].r;
        	}
        	sort(a+1,a+n+1,cmp);
        	for(int i=1;i<=n;i++){
        		v[a[i].l].push_back(a[i].r);
        		v[a[i].r].push_back(a[i].l);
        	}
        	int x;
        	for(int i=1;i<=q;i++){
        		cin>>x;
        		cout<<v[x].size()<<' ';
        		for(int i=0;i<v[x].size();i++){
        			cout<<v[x][i]<<' ';
        		}
        		cout<<endl;
        	}
        	
        	return 0;
        } 
        
        • 1

        信息

        ID
        809
        时间
        1000ms
        内存
        256MiB
        难度
        6
        标签
        递交数
        210
        已通过
        58
        上传者