3 条题解
-
11赵青海 (huhe) LV 7 SU @ 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; }
-
22022-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(""); } }
-
02021-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
- 标签
- 递交数
- 232
- 已通过
- 64
- 上传者