QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#88588 | #5502. Dazzling Mountain | JerryBlack# | AC ✓ | 3697ms | 222496kb | C++17 | 10.2kb | 2023-03-16 17:07:54 | 2023-03-16 17:08:22 |
Judging History
answer
#include<bits/stdc++.h>
using namespace std;
//#pragma GCC optimize(2)
//#pragma GCC optimize(3)
//#pragma GCC optimize("Ofast,unroll-loops")
#define DECIMAL 6
namespace fastIO
{
#ifdef LOCAL
#define DEBUG
#endif
#define BUF_SIZE 100000
#define LL long long
static bool IOerror=false;
#ifdef DEBUG
inline char nc(){char ch=getchar();if(ch==-1)IOerror=1;return ch;}
#else
inline char nc(){static char buf[BUF_SIZE],*p1=buf+BUF_SIZE,*pend=buf+BUF_SIZE;if(p1==pend){p1=buf;pend=buf+fread(buf,1,BUF_SIZE,stdin);if(pend==p1){IOerror=true;return -1;}}return *p1++;}
#endif
inline bool blank(char ch){return ch==' '||ch=='\n'||ch=='\r'||ch=='\t';}
template<class T> inline bool read(T&x){bool sign=false;char ch=nc();x=0;for(;blank(ch);ch=nc());if(IOerror)return false;if(ch=='-')sign=true,ch=nc();for(;ch>='0'&&ch<='9';ch=nc())x=x*10+ch-'0';if(sign)x=-x;return true;}
inline bool read(unsigned long long&x){char ch=nc();x=0;for(;blank(ch);ch=nc());if(IOerror)return false;for(;ch>='0'&&ch<='9';ch=nc())x=x*10+ch-'0';return true;}
inline bool read(unsigned int&x){char ch=nc();x=0;for(;blank(ch);ch=nc());if(IOerror)return false;for(;ch>='0'&&ch<='9';ch=nc())x=x*10+ch-'0';return true;}
inline bool read(double&x){bool sign=false;char ch=nc();x=0;for(;blank(ch);ch=nc());if(IOerror)return false;if(ch=='-')sign=true,ch=nc();for(;ch>='0'&&ch<='9';ch=nc())x=x*10+ch-'0';if(ch=='.'){double tmp=1;ch=nc();for(;ch>='0'&&ch<='9';ch=nc())tmp/=10.0,x+=tmp*(ch-'0');}if(sign)x=-x;return true;}
inline bool read(char*s){char ch=nc();for(;blank(ch);ch=nc());if(IOerror)return false;for(;!blank(ch)&&!IOerror;ch=nc())*s++=ch;*s=0;return true;}
inline bool read(char&c){for(c=nc();blank(c);c=nc());if(IOerror){c=-1;return false;}return true;}
inline bool read(std::string&s){s.clear();char ch=nc();for(;blank(ch);ch=nc());if(IOerror)return false;for(;!blank(ch)&&!IOerror;ch=nc())s+=ch;return true;}
template<class T,class... U> bool read(T&h,U&... t){return read(h)&&read(t...);}
struct Ostream_fwrite
{
#ifdef DEBUG
inline void out(char ch) { putchar(ch); }
#else
char*buf,*p1,*pend;
Ostream_fwrite(){buf=new char[BUF_SIZE];p1=buf;pend=buf+BUF_SIZE;}
inline void out(char ch){if(p1==pend){fwrite(buf,1,BUF_SIZE,stdout);p1=buf;}*p1++=ch;}
#endif
template<class T> inline void print(T x){static char s[41],*s1;s1=s;if(!x)*s1++='0';if(x<0)out('-'),x=-x;while(x)*s1++=x%10+'0',x/=10;while(s1--!=s)out(*s1);}
inline void print(char ch){out(ch);}
inline void print(unsigned long long x){static char s[41],*s1;s1=s;if(!x)*s1++='0';while(x)*s1++=x%10+'0',x/=10;while(s1--!=s)out(*s1);}
inline void print(unsigned int x){static char s[41],*s1;s1=s;if(!x)*s1++='0';while(x)*s1++=x%10+'0',x/=10;while(s1--!=s)out(*s1);}
inline void print(double x,int y=DECIMAL){static LL mul[]={1,10,100,1000,10000,100000,1000000,10000000,100000000,1000000000,10000000000LL,100000000000LL,1000000000000LL,10000000000000LL,100000000000000LL,1000000000000000LL,10000000000000000LL,100000000000000000LL};if(x<-1e-12)out('-'),x=-x;x*=mul[y];LL x1=(LL)floor(x);if(x-floor(x)>=0.5)++x1;LL x2=x1/mul[y],x3=x1-x2*mul[y];print(x2);if(y>0){out('.');for(size_t i=1;i<y&&x3*mul[i]<mul[y];out('0'),++i);print(x3);}}
inline void print(char*s){while(*s)out(*s++);}
inline void print(const char*s){while(*s)out(*s++);}
inline void print(std::string s){print(s.c_str());}
#ifndef DEBUG
inline void flush(){if(p1!=buf){fwrite(buf,1,p1-buf,stdout);p1=buf;}}
~Ostream_fwrite(){flush();}
#endif // !DEBUG
}Ostream;
template<class T> inline void print(T x){Ostream.print(x);}
template<class T> inline void println(T x){Ostream.print(x);Ostream.out('\n');}
inline void print(double x,int y=DECIMAL){Ostream.print(x,y);}
inline void println(double x,int y=DECIMAL){Ostream.print(x,y);Ostream.out('\n');}
template<class T,class... U> void print(const T&h,const U&... t){print(h);Ostream.out(' ');print(t...);}
template<class T,class... U> void println(const T&h,const U&... t){print(h);Ostream.out(' ');println(t...);}
#ifndef DEBUG
inline void flush(){Ostream.flush();}
#endif
#undef LL
#undef DECIMAL
#undef BUF_SIZE
//本地 getchar/putchar ,提交 fread/fwrite
//本地支持终端交互输入输出
}
using namespace fastIO;
#define ll long long
#define ull unsigned ll
#define fi first
#define se second
const double eps=1e-9;
const int inf=0x3f3f3f3f;
const ll INF=0x3f3f3f3f3f3f3f3f;
mt19937 rnd(time(0));
int P=1e9+9;
namespace modint
{
int norm(int x){if(x<0)x+=P;if(x>=P)x-=P;return x;}
template<class T>
T power(T a,ll n){T ans=1;while(n){if(n&1)ans=ans*a;a=a*a;n>>=1;}return ans;}
struct Z
{
int x;
Z(int x=0):x(norm(x)){}
Z(ll x):x(norm(x%P)){}
int val() const{return x;}
Z operator-() const{return Z(norm(P-x));}
Z inv() const{assert(x!=0);return power(*this,P-2);}
Z&operator*=(const Z&rhs){x=(ll)x*rhs.x%P;return *this;}
Z&operator+=(const Z&rhs){x=norm(x+rhs.x);return *this;}
Z&operator-=(const Z&rhs){x=norm(x-rhs.x);return *this;}
Z&operator/=(const Z&rhs){return *this*=rhs.inv();}
friend Z operator*(const Z&lhs,const Z&rhs){Z res=lhs;res*=rhs;return res;}
friend Z operator+(const Z&lhs,const Z&rhs){Z res=lhs;res+=rhs;return res;}
friend Z operator-(const Z&lhs,const Z&rhs){Z res=lhs;res-=rhs;return res;}
friend Z operator/(const Z&lhs,const Z&rhs){Z res=lhs;res/=rhs;return res;}
friend istream&operator>>(istream&is,Z&a){ll v;is>>v;a=Z(v);return is;}
friend ostream&operator<<(ostream&os,const Z&a){return os<<a.val();}
};
}
using namespace modint;
#define int ll
struct node
{
int id,siz;
bool operator<(const node&n)const
{
return siz>n.siz;
}
};
void solve()
{
int n;
cin>>n;
vector<vector<int>>edge(n+1);
vector<int>de(n+1),dd(n+1);
vector<int>siz(n+1,1);
for(int i=1;i<n;i++)
{
int u,v;
cin>>u>>v;
edge[u].push_back(v);
edge[v].push_back(u);
de[u]++;de[v]++;
}
vector<int>cnt(n+1);
int tott=0;
for(int i=2;i<=n;i++)
{
if(de[i]==1)cnt[i]=1,tott++;
}
vector<int>fa(n+1);
function<void(int,int)>dfs=[&](int x,int f)
{
for(auto it:edge[x])if(it!=f)
{
fa[it]=x;
dfs(it,x);
siz[x]+=siz[it];
cnt[x]+=cnt[it];
}
};
dfs(1,0);
// for(int i=1;i<=n;i++)
// {
// cout<<siz[i]<<" \n"[i==n];
// }
// for(int i=1;i<=n;i++)
// {
// cout<<cnt[i]<<" \n"[i==n];
// }
vector<int>tot(n+1);
for(int i=1;i<=n;i++)
{
tot[siz[i]]+=cnt[i];
}
vector<int>ans;
for(int i=1;i<=n;i++)
{
if(tot[i]==tott)ans.push_back(i);
}
cout<<ans.size()<<'\n';
for(auto it:ans)cout<<it<<' ';
cout<<'\n';
}
#undef int
int main()
{
ios::sync_with_stdio(false);cin.tie(nullptr);
cout<<fixed<<setprecision(15);
int _;cin>>_;while(_--)
{
solve();
}
return 0;
}
/* ┌───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┬───┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
* │Esc│ │ F1│ F2│ F3│ F4│ │ F5│ F6│ F7│ F8│ │ F9│F10│F11│F12│ │P/S│S/L│P/B│ │Cal│ │ │ │
* └───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┴───┘ └───┴───┴───┘ └───┴───┴───┴───┘
* ┌───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───┬───────┐ ┌───┬───┬───┐ ┌───┬───┬───┬───┐
* │~ `│! 1│@ 2│# 3│$ 4│% 5│^ 6│& 7│* 8│( 9│) 0│_ -│+ =│ BacSp │ │Ins│Hom│PUp│ │Num│ / │ * │ - │
* ├───┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─────┤ ├───┼───┼───┤ ├───┼───┼───┼───┤
* │ Tab │ Q │ W │ E │ R │ T │ Y │ U │ I │ O │ P │{ [│} ]│ | \ │ │Del│End│PDn│ │ 7 │ 8 │ 9 │ │
* ├─────┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴┬──┴─────┤ └───┴───┴───┘ ├───┼───┼───┤ + │
* │ Caps │ A │ S │ D │ F │ G │ H │ J │ K │ L │: ;│" '│ Enter │ │ 4 │ 5 │ 6 │ │
* ├──────┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴─┬─┴────────┤ ┌───┐ ├───┼───┼───┼───┤
* │ Shift │ Z │ X │ C │ V │ B │ N │ M │< ,│> .│? /│ Shift │ │ ↑ │ │ 1 │ 2 │ 3 │ │
* ├─────┬──┴─┬─┴──┬┴───┴───┴───┴───┴───┴──┬┴───┼───┴┬────┬────┤ ┌───┼───┼───┐ ├───┴───┼───┤ E││
* │ Ctrl│ Win│ Alt│ Space │ Alt│ Win│ Fn │Ctrl│ │ ← │ ↓ │ → │ │ 0 │ . │←─┘│
* └─────┴────┴────┴───────────────────────┴────┴────┴────┴────┘ └───┴───┴───┘ └───────┴───┴───┘
*/
详细
Test #1:
score: 100
Accepted
time: 0ms
memory: 3404kb
input:
1 9 1 2 2 3 3 4 3 5 2 6 6 7 7 8 7 9
output:
4 1 3 8 9
result:
ok 2 lines
Test #2:
score: 0
Accepted
time: 919ms
memory: 4004kb
input:
10000 906 675 189 555 889 491 97 791 419 175 694 713 842 788 513 159 354 670 815 652 546 253 87 89 278 563 429 522 900 202 657 331 865 35 605 735 532 612 471 657 386 7 886 856 164 224 777 73 534 481 631 711 698 240 465 115 181 191 825 311 155 709 501 207 849 294 546 591 682 96 405 210 696 861 13 781...
output:
63 1 3 4 34 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 6 1 2 3 4 5 11 28 1 2 3 4 5 6 15 16 17 18 19 20 21...
result:
ok 20000 lines
Test #3:
score: 0
Accepted
time: 2210ms
memory: 68480kb
input:
10 257056 71485 24974 175037 254578 15503 255561 2268 184070 101954 23776 151400 163190 209539 157934 61908 8578 251032 109510 106012 63219 6393 135129 229530 202665 135202 195080 36226 54716 113653 27375 130515 126621 51348 62149 190321 116509 235895 205631 193944 184367 234172 88847 217084 158554 ...
output:
24809 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 10...
result:
ok 20 lines
Test #4:
score: 0
Accepted
time: 3697ms
memory: 222496kb
input:
3 1000000 929036 746780 508756 963246 215473 613289 951642 391332 605398 514190 932199 548138 439718 525533 976267 837482 522952 131368 536100 143927 866830 627096 995333 784817 209340 817981 278894 972055 340159 479037 505969 156301 962674 345998 328184 514559 522443 340810 671564 2940 233204 19714...
output:
1000000 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 ...
result:
ok 6 lines
Test #5:
score: 0
Accepted
time: 3568ms
memory: 186980kb
input:
3 1000000 762755 663578 736521 890486 762558 739995 2696 497271 66774 285301 58082 960305 515605 849755 585841 791747 805356 25220 199034 206010 792516 101430 419916 601668 256275 440770 76325 556632 286424 45286 173087 212370 760515 256873 614983 749308 248450 520646 937026 203197 698482 110785 336...
output:
97 1 999905 999906 999907 999908 999909 999910 999911 999912 999913 999914 999915 999916 999917 999918 999919 999920 999921 999922 999923 999924 999925 999926 999927 999928 999929 999930 999931 999932 999933 999934 999935 999936 999937 999938 999939 999940 999941 999942 999943 999944 999945 999946 9...
result:
ok 6 lines
Test #6:
score: 0
Accepted
time: 2746ms
memory: 123020kb
input:
4 524287 205019 282354 364309 67930 413687 214429 276475 421558 389289 353076 280299 275873 94349 273570 247189 157103 229015 223128 199377 75975 290133 428512 365384 135800 429146 366204 300847 17632 274432 256151 514401 293776 169558 105252 441686 467048 416285 490295 87525 312545 150473 67284 218...
output:
19 1 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65535 131071 262143 524287 2 1 524288 18 1 3 7 15 31 63 127 255 511 1023 2047 4095 8191 16383 32767 65535 131071 917503 2 1 1000000
result:
ok 8 lines