题意】:
给出一个有向图,确定最小的k,通过前k条边就能确定唯一的拓扑序列。若整个图不存在唯一的拓扑序列,输出-1

#include<bits/stdc++.h>
using namespace  std;
#define ll long long
#define pb push_back
#define inf 2099999999
#define rep(i,a,b) for(int i=a;i<=b;i++)
#define rep1(i,a,b) for(int i=a;i>=b;i--)
const int N=1e5+10;
vector<int>G[N];
int n,m,a1[N],a2[N];
int in[N];
/**能决定出顺序就说明拓扑排序是一条直线那么如果出现一个数后面有两个数就是错误的二分答案可以用队列判断每当pop一个数之后如果队列里面还有数说明不可行
*/
bool check(int mid)
{memset(in,0,sizeof(in));for(int i=0;i<=n;i++)G[i].clear();for(int i=1;i<=mid;i++)G[a1[i]].pb(a2[i]),in[a2[i]]++;queue<int>q;for(int i=1;i<=n;i++)if(in[i]==0)q.push(i);while(!q.empty()){int t=q.front();q.pop();if(!q.empty())return false;for(int i=0;i<G[t].size();i++){int v=G[t][i];in[v]--;if(in[v]==0)q.push(v);}}return true;
}
int main()
{#ifdef LOCAL_DEFINEfreopen("D://rush.txt", "r", stdin);#endifios::sync_with_stdio(false),cin.tie(0);cin>>n>>m;for(int i=1;i<=m;i++)cin>>a1[i]>>a2[i];int l=1,r=m,ans=-1;while(l<=r){int mid=(l+r)/2;if(check(mid))r=mid-1,ans=mid;elsel=mid+1;}cout<<ans<<endl;
}

转载于:https://www.cnblogs.com/ffgcc/p/10546382.html

cf-645D. Robot Rapping Results Report(判断是否是惟一的拓扑序列)相关推荐

  1. 图结构练习——判断给定图是否存在合法拓扑序列(topo)

    图结构练习--判断给定图是否存在合法拓扑序列 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description ...

  2. 数据结构实验之图论十:判断给定图是否存在合法拓扑序列

    Description 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. Input 输入包含多组,每组格式如下. 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数.(n<=10 ...

  3. 图结构练习——判断给定图是否存在合法拓扑序列

    题目描述 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. 输入 输入包含多组,每组格式如下. 第一行包含两个整数n,m,分别代表该有向图的顶点数和边数.(n<=10) 后面m行每行两个 ...

  4. 给定入栈序列,判断一个串是否为出栈序列

    剑指offer22:给定入栈序列,判断一个串是否为出栈序列 public static boolean isOutStackSequence(int[] Spush, int[] Spop) {if ...

  5. sdut 2140 有向图中是否存在拓扑序列的判断

    Problem Description 给定一个有向图,判断该有向图是否存在一个合法的拓扑序列. 讲解:http://blog.csdn.net/dm_vincent/article/details/ ...

  6. [CF]922D. Robot Vacuum Cleaner-结论排序

    传送门 题解 本来比的是si/hisi/his_i/h_i ,但是会爆精度,所以就比较sihj,sjhisihj,sjhis_ih_j,s_jh_i,这样会爆intintint,一定要加longlon ...

  7. oracle删除已创建的用户,ORACLE用户创建删除

    ●sqlplus登陆 sqlplus sys/isc@testgmmc as sysdba ●创建用户 create user testpoi3 IDENTIFIED by isc account u ...

  8. SDUT--OJ《数据结构与算法》实践能力专题训练6 图论

    A - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 Description 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列.(同一个结点 ...

  9. SDUT OJ----数据结构----图论习题

    A - 数据结构实验之图论一:基于邻接矩阵的广度优先搜索遍历 Description 给定一个无向连通图,顶点编号从0到n-1,用广度优先搜索(BFS)遍历,输出从某个顶点出发的遍历序列.(同一个结点 ...

  10. python+robot

    转载:robot环境部署:http://blog.51cto.com/7717647/2088634 Robot Run TestSuite -d results  $FileDir$ $FileDi ...

最新文章

  1. LVS_DR实现(负载均衡)及LVS_DR+keepalived实现(高可用+负载均衡)
  2. 面试者面试官,双向角度的程序员面试指南!
  3. java亲密数的解题思路,算法解题思路总结 - jjhgx的个人空间 - OSCHINA - 中文开源技术交流社区...
  4. vs2008 USB转COM口发送字符中途出错的问题.
  5. 关于韩京清学者的《直线型倒立摆的自抗扰控制设计方案》仿真
  6. mysql建立索引的优缺点|创建索引alter或create索引分类(PRIMARY KEY,UNIQUE KEY,FULLTEXT,INDEX)作用查看索引show index from table
  7. MySQL中的执行计划(explain)
  8. 美团百度联合布局无人驾驶外卖;高通裁员千人;英特尔关闭可穿戴业务 | CSDN极客头条...
  9. [19/03/12-星期二] 数组_遍历(for-each)复制java.util.Arrays类
  10. 关于IDE集成开发环境,Pycharm小技巧
  11. Matlab函数——dct2
  12. 解决:本地计算机上的MySQL80服务启动后停止,某些服务在未由其他服务或者程序使用时将自动停止
  13. spa文件转换html,前端微服务化解决方案2 - Single-SPA
  14. html网页表格线条设置,css怎么设置表格边框?
  15. oracle 查看进程
  16. HDOJ 5296 Annoying problem
  17. webscraper多页爬取_webscraper的常见爬取问题
  18. NVIDIA、CUDA、CUDNN、PyTorch安装吐血整理!!!
  19. AE 打开各种格式文件
  20. Cython基础--Cython的类型

热门文章

  1. USRP X310使用的准备工作--Linux进行FPGA image烧录
  2. 【织梦插件】xenu软件-网站url和死链提取工具免费下载
  3. Tomb.Finance的每周更新(5.16-5.22)「Harry大财主的每周二更新」
  4. css写七步诗,《七步诗》改写550字
  5. 汽车标志你认识多少?爱车族一定要了解哦!
  6. 视频直播画质核心影响因素分析:分辨率、帧率和码率
  7. java中的IO整理(上)(微信文章)
  8. 信息技术前言讲座报告
  9. 个人建站用php,个人用不花钱 8款PHP建站软件推荐
  10. android 强制横屏布局,Activity强制横竖屏和全屏的方法