题解:P11298 [NOISG2018 Prelim] Island
xiaoliebao1115 · · 题解
水题。
假设固定节点
那么我们从
那么答案就被转化为所有
对于每一个点的贡献在数组上面记录,然后做一个后缀就可以求出对于每一个数在答案中有几个。
for(int i=1;i<n+m;i++){
int u,v;
cin>>u>>v;
ecnt[u]++,ecnt[v]++;
}
p[ecnt[1]]++;
for(int i=2;i<=n+m;i++) p[ecnt[i]-1]++;
int s=0;
for(int i=n+m;i>=2;i--){
s+=p[i];
p[i]=s;
if(p[i]) cout<<i<<" "<<p[i]<<endl;
}