题目链接:

http://codeforces.com/problemset/problem/645/D

题意:

给定n个机器人的m个能力大小关系,问你至少要前几个大小关系就可以得到所有机器人的能力顺序。

分析:

拓扑+二分。
注意最终的顺序不能缺点,先把度为0的点入队,如果度为0的点的个数大于1,则说明至少有两个点的能力大小不确定,无法继续。

代码:

#include<bits/stdc++.h>
using namespace std;
const int maxn = 100005;
vector<int>G[maxn];
int in[maxn], out[maxn];
int ef[maxn], et[maxn];
int n, m;
bool judge(int mid)
{memset(in, 0 ,sizeof(in));for(int i = 1; i <= n; i++)G[i].clear();for(int i = 0; i < mid; i++){G[ef[i]].push_back(et[i]);in[et[i]]++;}queue<int>q;for(int i = 1; i <= n; i++){if(!in[i]) q.push(i);}while(!q.empty()){int u = q.front();q.pop();if(q.size()) return false;for(int i = 0; i < G[u].size(); i++){int v = G[u][i];in[v]--;if(!in[v]) q.push(v);}}return true;
}
int main (void)
{cin>>n>>m;for(int i = 0; i < m; i++){scanf("%d%d", &ef[i], &et[i]);}int l = 0, r = m;while(l < r - 1){int mid = (l + 1 +r)/2;if(judge(mid)) r = mid;else l = mid;}if(r == m && !judge(m)) return cout<<-1<<endl,0;else  cout<<r<<endl;return 0;
}

Codeforces 645D Robot Rapping Results Report【拓扑排序+二分】相关推荐

  1. CodeForces 1213F (强联通分量分解+拓扑排序)

    传送门 •题意 给你两个数组 p,q ,分别存放 1~n 的某个全排列: 让你根据这两个数组构造一个字符串 S,要求: (1)$\forall i \in [1,n-1],S_{pi}\leq S _ ...

  2. Mr. Kitayuta‘s Technology CodeForces - 505D(并查集+拓扑排序或dfs找环) 题解

    题目  Shuseki Kingdom is the world's leading nation for innovation and technology. There are n cities ...

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

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

  4. CodeForces - Kitchen Plates(拓扑排序)

    题目链接:http://codeforces.com/gym/102219/problem/J Time limit per test 1.0 s Memory limit per test 256 ...

  5. 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') ...

  6. 每日一套codeforce集训1119E[贪心],821C[栈模拟],645D[拓扑排序]

    有n种长度的棍子,长度分别为2^0 ,2 ^ 1,-,2 ^ (n-1) ,每种棍子有a[i] 种,问你能组成多少个三角形. 三角形两边之和大于第三边,而2 ^ i + 2 ^ i = 2 ^ (i+ ...

  7. CodeForces - 1368E Ski Accidents(拓扑排序)

    题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的有向无环图,规定:每个点的出度一定小于等于 2 ,现在要求删除掉至多  个点,使得任意一条路径的长度都不大于 1 题目分析:主要是这个 ...

  8. CodeForces - 501C Misha and Forest(拓扑排序)

    题目链接:点击查看 题目大意:给出一个无环无向图,但给出的形式是只给出每个节点的度数以及所有相邻节点的异或和,要求我们还原出原图,表示出每条边即可 题目分析:既然是无环无向图,那么题目给出的就是一棵树 ...

  9. CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)

    ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...

  10. 【CodeForces - 214C 】Game (拓扑排序,思维)

    题干: Furik and Rubik love playing computer games. Furik has recently found a new game that greatly in ...

最新文章

  1. objc runtime 动态增加属性
  2. wife信号服务器可以改吗,不换无线路由器 该怎么提升WiFi信号
  3. 空类,虚函数类,虚继承类的空间大小
  4. python如何绘制直线_python绘制直线的方法
  5. 0730 - 搞定 iPaste for iOS 技术选型
  6. WGAN-GP 学习笔记
  7. 版本控制--搭建 GitLab 服务器
  8. android html转pdf工具,android – 使用iText库将html转换为pdf时未应用hr的内联CSS
  9. java怎么修改订单状态_在WooCommerce中自定义订单状态更改时发送电子邮件通知
  10. 数据结构笔记(二十一)--二叉树的遍历
  11. Mybaits 3.2.6设计的一个缺陷,欢迎拍砖交流
  12. 十分钟搞清字符集和字符编码
  13. ASDL、以太网、光钎的关系与区别
  14. 麻将 java_java麻将游戏算法
  15. 论文阅读-Detecting Deepfakes with Self-Blended Images (利用自混合图像检测深度伪造)
  16. FPGA开发——SRIO
  17. 成龙坦言演蒲松龄曾打退堂鼓:我演大文豪谁信啊
  18. C-DOCSIS业务流
  19. Zotero文献管理工具使用指南
  20. Carson带你学Android:这是一份全面详细的属性动画学习攻略!

热门文章

  1. Java根据模板生成PDF文件|添加盖章|添加水印
  2. 2022-2027年中国城市公共汽车客运行业发展前景及投资战略咨询报告
  3. Tomb.Finance的每周更新(5.16-5.22)「Harry大财主的每周二更新」
  4. 关于AlertDialog的小坑
  5. PyTorch中 detach() 、detach_()和 data 的区别
  6. 安全管理实务之一:补丁管理(转)
  7. Flexsim Rack设置最底层Level不放货物
  8. rfid射频前端的主要组成部分有_RFID复习题目
  9. java项目学生量化管理考核细则_班级管理量化考核细则范本
  10. Edward Frenkel关于几何化朗兰兹纲领的采访