WA #37 求助
查看原帖
WA #37 求助
503075
Lantrol楼主2022/10/19 04:36
#include<bits/stdc++.h>
#define ioc ios::sync_with_stdio(0)
using namespace std;
const int MAXN=1e5+5;
int k,b[MAXN],n;
void solve(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>b[i];
		if(b[i]>i) k=i;
	}
	vector<vector<int> > e(n+2);
	for(int i=1;i<=n;i++){
		e[b[i]].push_back(i);
	}
	int rt=e[0].size()?0:n+1;
	queue<int> q;
	q.push(rt);
	cout<<k<<"\n";
	while(!q.empty()){
		int u=q.front();
		if(u!=rt)cout<<u<<" ";
		q.pop();
		sort(e[u].begin(),e[u].end(),[&](int x,int y){return e[x].size()<e[y].size();});
		for(auto v:e[u]) q.push(v);	
	}
	cout<<"\n";
}
 
int main(){
	ioc;
	int t;
	cin>>t;
	while(t--){
		solve();
	}
}
2022/10/19 04:36
加载中...