问题有明显的单调性,考虑每次用拓扑排序检验正确性

Ⅰ.如果拓扑排序结束,还有点没被入队过,说明有环,有环是无法确定的Ⅰ.如果拓扑排序结束,还有点没被入队过,说明有环,有环是无法确定的Ⅰ.如果拓扑排序结束,还有点没被入队过,说明有环,有环是无法确定的

Ⅱ.每次删掉一个点后,会把周围点的入度减减,但是一次最多只有一个点入度变成0.Ⅱ.每次删掉一个点后,会把周围点的入度减减,但是一次最多只有一个点入度变成0.Ⅱ.每次删掉一个点后,会把周围点的入度减减,但是一次最多只有一个点入度变成0.

如果多于这个数,那么这几个点处于同一层级,无法判断能力强弱如果多于这个数,那么这几个点处于同一层级,无法判断能力强弱如果多于这个数,那么这几个点处于同一层级,无法判断能力强弱

//怎样能确定?
//一、没有环
//二、只有一个入度为1的点
//三、每次只会加入一个点
#include <bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
int n,m,l[maxn],r[maxn],in[maxn];
vector<int>vec[maxn];
bool tuopu()
{queue<int>q;int temp=0;for(int i=1;i<=n;i++)if( in[i]==0 ) temp++,q.push(i);if( temp!=1 )   return false;   while( !q.empty() ){int u=q.front(),lin=0; q.pop();for(int i=0;i<vec[u].size();i++){int v=vec[u][i];if( --in[v]==0 ) q.push(v),temp++,lin++;}if( lin>1 )  return false;}if( temp!=n )    return false;return true;
}
void init(int mid)
{for(int i=1;i<=n;i++)   vec[i].clear(),in[i]=0;for(int i=1;i<=mid;i++){vec[ r[i] ].push_back( l[i] );in[ l[i] ]++;}
}
int main()
{cin >> n >> m;for(int i=1;i<=m;i++)scanf("%d%d",&l[i],&r[i]);int L=1,R=m,mid,ans=-1;while( R>=L ){mid=L+R>>1;init(mid);if( tuopu() )   R=mid-1,ans=mid;else  L=mid+1;}cout << ans;
}

D. Robot Rapping Results Report(拓扑排序+二分)相关推荐

  1. P3573-[POI2014]RAJ-Rally【拓扑排序,二分+树状数组】

    正题 题目链接:https://www.luogu.com.cn/problem/P3573 题目大意 nnn个点mmm条边的DAGDAGDAG,删掉一个点使得最长路最短. 解题思路 先跑一遍拓扑排序 ...

  2. 1479A - Searching Local Minimum 交互,二分,2019 ccpc 哈尔滨 E 拓扑排序

    1479A - Searching Local Minimum 交互,二分 找一个区间[l,r]始终满足a[l+1]>a[l]&&a[r]<a[r+1],然后不断缩小区间当 ...

  3. 【CodeForces 1100E】二分答案 | 拓扑排序 | E

    这是一道很美妙的题- 1100E. Andrew and Taxi time limit per test: 2 seconds memory limit per test: 256 megabyte ...

  4. networkx 有向图强连通_leetcode刷题(四):搜索(深度优先搜索,广度优先搜索)拓扑排序,强连通分量...

    在开始今天的话题之前,我们先了解一个概念,什么是图的遍历? 图的遍历就是从图中某一点出发访遍图中其余剩余定点,且每个顶点仅被访问一次,这个过程叫做图的遍历. 图的遍历主要被分为深度优先遍历和广度优先遍 ...

  5. 算法:图(Graph)的遍历、最小生成树和拓扑排序

    背景 不同的数据结构有不同的用途,像:数组.链表.队列.栈多数是用来做为基本的工具使用,二叉树多用来作为已排序元素列表的存储,B 树用在存储中,本文介绍的 Graph 多数是为了解决现实问题(说到底, ...

  6. 图综合练习--拓扑排序_拓扑排序

    一个场景 在大学里,每当到了期末的时候,你一定会头疼于选课给你带来的困扰.其中一项就是先修课的问题,每次你高高兴兴地选了自己心仪的选修课时,却发现自己不满足先修课的要求,只好默默地退掉.到底怎样安排我 ...

  7. Robots on a Grid CodeForces - 1335F(拓扑排序+正反建图+判环)

    There is a rectangular grid of size n×m. Each cell of the grid is colored black ('0') or white ('1') ...

  8. E. Pattern Matching(题意理解+拓扑排序)

    E. Pattern Matching 首先p[mtj]p[mt_j]p[mtj​]必须能够匹配所给字符sjs_jsj​,然后把所有能够匹配的sjs_jsj​的其他模板串也找出来,这些必须放在p[mt ...

  9. 拓扑排序——CodeForces-645D

    题目链接 题目含义 有一个机器人比赛,只要a能打败b,b能打败c,a就一定能打败c 然后给出一堆比赛的结果,如果不能得到唯一的所有的机器人战力排名,就输出-1 如果可以的话,最少能用前几场比赛结果能得 ...

  10. D2欧拉路,拓扑排序,和差分约束

    第一题:太鼓达人:BZOJ3033 题意:给出k,求一个最长的M位01串,使其从每一个位置向后走k个得到 的M个k位01串互不相同(最后一个和第一个相邻,即是一个环).输出 字典序最小的答案. 2 ≤ ...

最新文章

  1. [C] Bellman-Ford边松弛:解决负权边
  2. 【并行计算-CUDA开发】从零开始学习OpenCL开发(一)架构
  3. 详解阿里开源分布式事务框架Seata
  4. java实践源码--哈弗曼树
  5. C++ template —— 动多态与静多态(六)
  6. lseek函数的使用
  7. [css] 请使用css写一个多级的下拉菜单
  8. ADO:用代码调用存储过程
  9. 进击的融合,浪潮推出全新SAS Switch储存设备SF-S1
  10. 细说BLUETOOTH 5 【4X 远距离】
  11. (完整版)环境工程学复习资料资料
  12. linux如何装coap协议,coap协议源码安装与测试
  13. selenium爬取维基百科信息
  14. git rebase 理解
  15. 此时流泪,彼时花开。。。。
  16. 洲际酒店集团发布全新奢华精选品牌;凯悦27亿美元收购奢华酒店运营集团ALG | 美通社头条...
  17. 【高性价比】初学者入门吉他值得推荐购买的民谣单板吉他品牌—VEAZEN费森吉他
  18. [NFC]NDEF和RTD协议介绍
  19. linux运维工程师2017,2017年Linux运维工程师经典面试题汇总
  20. 此身, 此时, 此地

热门文章

  1. 投票管理系统的设计与实现(项目实现)
  2. Cisco Packet Tracer路由器ip简单配置(网关)
  3. 轻量化html编辑器,建站“一气呵成” 推荐7大免费网页编辑器
  4. Java LeetCode每日一题-从易到难带你领略算法的魅力(七):Z 字形变换
  5. ewebeditor php漏洞,ewebeditor for php任意文件上传漏洞
  6. 什么是网站死链?如何查询网站死链?网站死链怎么解决?
  7. vue+element实现一个excel表格下载的功能
  8. android 智能识别名片,小程序云开发实战:实现 AI 智能名片识别小程序
  9. Bootstrap broker localhost:9092 (id: -1 rack: null) disconnected
  10. vue element-ui实现input输入框金额数字添加千分位