专栏文章
题解:CF2056B Find the Permutation
CF2056B题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miqgdz6f
- 此快照首次捕获于
- 2025/12/04 04:22 3 个月前
- 此快照最后确认于
- 2025/12/04 04:22 3 个月前
拓扑排序模板题。
用 与 的关系建图。如果 ,那么连 ,否则连 。然后拓扑排序。答案即为排序后的顺序。
CPPvoid sol(){
int n;
cin>>n;
for (int i=1;i<=n;i++){
deg[i]=0;
p[i].clear();
for (int j=1;j<=n;j++){
char c;
cin>>c;
a[i][j]=c-'0';
}
}
for (int i=1;i<=n;i++){
for (int j=i+1;j<=n;j++){
if (a[i][j]) p[i].pb(j),deg[j]++;
else p[j].pb(i),deg[i]++;
}
}
queue<int> q;
for (int i=1;i<=n;i++) if (!deg[i]) q.push(i);
while (!q.empty()){
int u=q.front();
q.pop();
cout<<u<<' ';
for (int v:p[u]){
if (!(--deg[v])) q.push(v);
}
}
cout<<endl;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...