AtCoder Beginner Contest 223 D - Restricted Permutation(建图 思维 构造 拓扑排序)

简介: AtCoder Beginner Contest 223 D - Restricted Permutation(建图 思维 构造 拓扑排序)

linkkk

题意:

给出m组限制条件,要求构造一个长度为n的字典序最小的序列。每组a , b表示在序列里a在b前面。

思路:

建图:a − > b有向边,跑一个拓扑排序,将队列换为优先队列,表示每次将最小的弹出,就能保证字典序最小了。

代码:

// Problem: D - Restricted Permutation
// Contest: AtCoder - AtCoder Beginner Contest 223
// URL: https://atcoder.jp/contests/abc223/tasks/abc223_d
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)
#include<iostream>
#include<cstdio> 
#include<string>
#include<ctime>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<stack>
#include<queue>
#include<map>
#include<set>
#include<sstream>
using namespace std;
typedef long long ll;
const int maxn=2e5+100;
int n,m,din[maxn];
vector<int>g[maxn],ans;
priority_queue<int,vector<int>,greater<int> >q;
int main() {
  cin>>n>>m;
  for(int i=1;i<=m;i++){
    int u,v;
    cin>>u>>v;
    g[u].push_back(v);
    g[v].push_back(u);
    din[v]++;
  }
  for(int i=1;i<=n;i++)
    if(!din[i]){
      q.push(i);
    }
  while(!q.empty()){
    int t=q.top();q.pop();
    ans.push_back(t);
    for(auto tt:g[t]){
      if(--din[tt]==0) q.push(tt);
    }
  }
  bool flag=0;
  for(int i=1;i<=n;i++)
    if(din[i]>0) flag=1;
  if(flag){
    puts("-1");return 0;
  }
  for(auto it:ans) cout<<it<<" ";
  return 0;
}
目录
相关文章
|
6月前
|
安全 Java Android开发
GDA反编译工具全面指南:从入门到高级应用
GDA(Generic Dalvik Analyzer)是一款专为Android逆向工程和安全研究设计的高性能反编译工具,由中国团队开发。它采用C++编写,无需依赖Java虚拟机,具备低资源消耗与高分析效率的优势。GDA支持多种文件格式的反编译,如APK、DEX、JAR等,并集成了恶意行为检测、隐私泄露分析、漏洞扫描等功能。同时提供变量追踪、路径解析、脚本自动化等实用特性,广泛应用于逆向分析、安全审计与漏洞挖掘。作为国产优秀逆向工具,GDA凭借其独立运行能力、丰富的功能和持续更新,在全球范围内受到分析师青睐。
845 0
|
8月前
|
监控 API 开发者
1688API接口终极宝典:列表、详情全掌握,图片搜索攻略助你一臂之力
1688为开发者提供涵盖商品、交易、物流和会员等核心业务的丰富API接口。商品类接口支持搜索、详情查询及图片搜索;交易类接口实现订单创建与支付;物流类接口提供报价与轨迹查询;会员类接口获取用户信息与认证。示例代码展示如何用Python通过图片搜索商品,并打印关键信息如价格、起订量和供应商详情。建议先在沙箱环境测试,确保稳定后再投入生产,以实现选品分析与价格监控等功能。
|
11月前
|
编解码 异构计算
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
3059 7
YOLOv11改进策略【Neck】| BiFPN:双向特征金字塔网络-跨尺度连接和加权特征融合
|
11月前
|
Java 关系型数据库 MySQL
ssm027学校运动会信息管理系统(文档+源码)_kaic
本文介绍了基于B/S结构的学校运动会信息管理系统开发过程。该系统采用JSP技术和MySQL数据库,确保了系统的安全性和稳定性。系统界面友好、操作简便,涵盖系统概述、分析、设计、数据库设计和测试等环节,实现了学校运动会信息管理的重要功能。经过测试,系统运行稳定,操作便捷,具备全面的功能、良好的可扩展性和维护性,有效提升了运动会信息管理的效率和准确性。关键词:学校运动会信息管理;B/S结构;JSP技术;MYSQL数据库。
|
Java
如何捕获和处理 EOFException 异常
EOFException 异常通常在尝试从输入流中读取数据但已到达文件末尾时抛出。要捕获和处理该异常,可以使用 try-catch 语句块,在 catch 块中进行相应的错误处理或提示。例如: ```java try { // 读取数据的代码 } catch (EOFException e) { System.out.println(&quot;已到达文件末尾&quot;); } ```
609 4
|
C语言
C语言中如何避免循环死循环
C语言中如何避免循环死循环
761 1
|
运维 监控 API
深入了解微服务架构:优势与挑战
【10月更文挑战第7天】深入了解微服务架构:优势与挑战
|
NoSQL MongoDB 数据库
国内唯一 阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”
阿里云连续第五年斩获MongoDB合作伙伴奖项,也是唯一获此殊荣的中国云厂商。一起学习MongoDB副本集的选举机制以及可能会出现的特殊情况。
国内唯一 阿里云荣膺MongoDB“2024年度DBaaS认证合作伙伴奖”
|
小程序 安全
微信小程序自定义底部导航栏
微信小程序自定义底部导航栏
|
小程序 前端开发 JavaScript
使用CSS的媒体查询功能在小程序中实现自适应布局
使用CSS的媒体查询功能在小程序中实现自适应布局