博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 1159E 拓扑排序
阅读量:5154 次
发布时间:2019-06-13

本文共 1077 字,大约阅读时间需要 3 分钟。

题意及思路:

代码:

#include 
#define LL long long#define db doubleusing namespace std;const int maxn = 500010;stack
>s;vector
G[maxn];int a[maxn], ans[maxn], tot, n;void topsort(void) { queue
q; q.push(n + 1); while(!q.empty()) { int x = q.front(); q.pop(); for (int i = 0; i < G[x].size(); i++) { int y = G[x][i]; ans[y] = tot--; q.push(y); } }}int main() { int T; scanf("%d", &T); while(T--) { scanf("%d", &n); tot = n; while(!s.empty())s.pop(); for (int i = 1; i <= n + 1; i++) G[i].clear(); bool flag = 0; for (int i = 1; i <= n; i++) { scanf("%d", &a[i]); if(a[i] == -1) a[i] = i + 1; while(!s.empty() && s.top().second <= i) s.pop(); if(!s.empty() && a[i] > s.top().second) { flag = 1; } else { s.push(make_pair(i, a[i])); G[a[i]].push_back(i); } } if(flag) { printf("-1\n"); } else { topsort(); for (int i = 1; i <= n; i++) printf("%d ", ans[i]); printf("\n"); } } }

  

转载于:https://www.cnblogs.com/pkgunboat/p/10884218.html

你可能感兴趣的文章
flask框架中,利用数据库增删查改
查看>>
ie7下的<input type="text">高度
查看>>
11、自定义标签
查看>>
1--单独使用jdbc开发问题总结
查看>>
CALayer---iOS-Apple苹果官方文档翻译之CALayer
查看>>
LintCode 819. 单词排序
查看>>
vex 从放弃到入门
查看>>
微博项目学习笔记
查看>>
proxifier 代理bluestack
查看>>
web 前端路线
查看>>
(VC/MFC)多线程(Multi-Threading) -1. 基本概念.
查看>>
快数据时代下,Moka携手DataPipeline提升招聘效能
查看>>
DataPipeline丨构建实时数据集成平台时,在技术选型上的考量点
查看>>
day1 用户登陆三次机会
查看>>
LeetCode 159. Longest Substring with At Most Two Distinct Characters
查看>>
LeetCode Ones and Zeroes
查看>>
CF932E Team Work——第二类斯特林数
查看>>
敏捷开发一千零一问系列之十三:故事点好还是人天好?
查看>>
内置函数— — eval、exec、compile
查看>>
基本算法概论
查看>>