Codeforces 645D Robot Rapping Results Report【拓扑排序+二分】
题目链接:
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【拓扑排序+二分】相关推荐
- CodeForces 1213F (强联通分量分解+拓扑排序)
传送门 •题意 给你两个数组 p,q ,分别存放 1~n 的某个全排列: 让你根据这两个数组构造一个字符串 S,要求: (1)$\forall i \in [1,n-1],S_{pi}\leq S _ ...
- Mr. Kitayuta‘s Technology CodeForces - 505D(并查集+拓扑排序或dfs找环) 题解
题目 Shuseki Kingdom is the world's leading nation for innovation and technology. There are n cities ...
- P3573-[POI2014]RAJ-Rally【拓扑排序,二分+树状数组】
正题 题目链接:https://www.luogu.com.cn/problem/P3573 题目大意 nnn个点mmm条边的DAGDAGDAG,删掉一个点使得最长路最短. 解题思路 先跑一遍拓扑排序 ...
- CodeForces - Kitchen Plates(拓扑排序)
题目链接:http://codeforces.com/gym/102219/problem/J Time limit per test 1.0 s Memory limit per test 256 ...
- 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') ...
- 每日一套codeforce集训1119E[贪心],821C[栈模拟],645D[拓扑排序]
有n种长度的棍子,长度分别为2^0 ,2 ^ 1,-,2 ^ (n-1) ,每种棍子有a[i] 种,问你能组成多少个三角形. 三角形两边之和大于第三边,而2 ^ i + 2 ^ i = 2 ^ (i+ ...
- CodeForces - 1368E Ski Accidents(拓扑排序)
题目链接:点击查看 题目大意:给出一张 n 个点和 m 条边组成的有向无环图,规定:每个点的出度一定小于等于 2 ,现在要求删除掉至多 个点,使得任意一条路径的长度都不大于 1 题目分析:主要是这个 ...
- CodeForces - 501C Misha and Forest(拓扑排序)
题目链接:点击查看 题目大意:给出一个无环无向图,但给出的形式是只给出每个节点的度数以及所有相邻节点的异或和,要求我们还原出原图,表示出每条边即可 题目分析:既然是无环无向图,那么题目给出的就是一棵树 ...
- CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)
ACM思维题训练集合 Furik and Rubik love playing computer games. Furik has recently found a new game that gre ...
- 【CodeForces - 214C 】Game (拓扑排序,思维)
题干: Furik and Rubik love playing computer games. Furik has recently found a new game that greatly in ...
最新文章
- objc runtime 动态增加属性
- wife信号服务器可以改吗,不换无线路由器 该怎么提升WiFi信号
- 空类,虚函数类,虚继承类的空间大小
- python如何绘制直线_python绘制直线的方法
- 0730 - 搞定 iPaste for iOS 技术选型
- WGAN-GP 学习笔记
- 版本控制--搭建 GitLab 服务器
- android html转pdf工具,android – 使用iText库将html转换为pdf时未应用hr的内联CSS
- java怎么修改订单状态_在WooCommerce中自定义订单状态更改时发送电子邮件通知
- 数据结构笔记(二十一)--二叉树的遍历
- Mybaits 3.2.6设计的一个缺陷,欢迎拍砖交流
- 十分钟搞清字符集和字符编码
- ASDL、以太网、光钎的关系与区别
- 麻将 java_java麻将游戏算法
- 论文阅读-Detecting Deepfakes with Self-Blended Images (利用自混合图像检测深度伪造)
- FPGA开发——SRIO
- 成龙坦言演蒲松龄曾打退堂鼓:我演大文豪谁信啊
- C-DOCSIS业务流
- Zotero文献管理工具使用指南
- Carson带你学Android:这是一份全面详细的属性动画学习攻略!
热门文章
- Java根据模板生成PDF文件|添加盖章|添加水印
- 2022-2027年中国城市公共汽车客运行业发展前景及投资战略咨询报告
- Tomb.Finance的每周更新(5.16-5.22)「Harry大财主的每周二更新」
- 关于AlertDialog的小坑
- PyTorch中 detach() 、detach_()和 data 的区别
- 安全管理实务之一:补丁管理(转)
- Flexsim Rack设置最底层Level不放货物
- rfid射频前端的主要组成部分有_RFID复习题目
- java项目学生量化管理考核细则_班级管理量化考核细则范本
- Edward Frenkel关于几何化朗兰兹纲领的采访