CodeForces 645D Robot Rapping Results Report
二分,拓扑排序。
二分答案,然后进行拓扑排序检查,若某次发现存在两个或者两个以上入度为$0$的节点,那么不可行。
#pragma comment(linker, "/STACK:1024000000,1024000000") #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> #include<vector> #include<map> #include<set> #include<queue> #include<stack> #include<iostream> using namespace std; typedef long long LL; const double pi=acos(-1.0),eps=1e-6; void File() {freopen("D:\\in.txt","r",stdin);freopen("D:\\out.txt","w",stdout); } template <class T> inline void read(T &x) {char c=getchar(); x=0;while(!isdigit(c)) c=getchar();while(isdigit(c)) {x=x*10+c-'0'; c=getchar();} }const int maxn=100010; int n,m,u[maxn],v[maxn]; int h[maxn],sz,r[maxn]; struct Edge{int u,v,nx;}e[maxn];void add(int a,int b) {e[sz].u=a; e[sz].v=b; e[sz].nx=h[a];h[a]=sz++; }bool check(int x) {memset(h,-1,sizeof h); sz=0;memset(r,0,sizeof r);for(int i=1;i<=x;i++) add(u[i],v[i]),r[v[i]]++;queue<int>Q;int num=0; for(int i=1;i<=n;i++) if(r[i]==0) Q.push(i),num++;if(num!=1) return 0;while(!Q.empty()){int top=Q.front(); Q.pop();num=0;for(int i=h[top];i!=-1;i=e[i].nx){r[e[i].v]--;if(r[e[i].v]==0){num++;Q.push(e[i].v);}}if(num>1) return 0;}return 1; }int main() {scanf("%d%d",&n,&m);for(int i=1;i<=m;i++) scanf("%d%d",&u[i],&v[i]);check(4);int L=1,R=m,ans=-1;while(L<=R){int m=(L+R)/2;if(check(m)) ans=m,R=m-1;else L=m+1;}printf("%d\n",ans);return 0; }
转载于:https://www.cnblogs.com/zufezzt/p/5915999.html
CodeForces 645D Robot Rapping Results Report相关推荐
- Codeforces 1196C Robot Breakout
https://codeforces.com/contest/1196/problem/C 题解:思维+交集 /* *@Author: STZG *@Language: C++ */ #include ...
- COMP0037 Coursework Investigating Path Planning Algorithms
COMP0037 Coursework 1 Term 2, 2019 "Path Planning in a Known World" Investigating Path Pla ...
- Robotframework集成jenkins执行用例
Robotframework+jenkins配置 假设我们完成了一个模块的用例设计,可是想晚上9点或凌晨运行,这时候该怎么实现呢?jenkins可以很好解决我们的疑难. Jenkins安装 这里简单说 ...
- ICRA2022 SLAM相关论文整理
目录 视觉SLAM相关 线.面.3Dfeature 多相机系统 VIO+GPS 其他 数据集 三维重建 语义SLAM Special sensor Lidar相关 视觉SLAM相关 线.面.3Dfea ...
- COMP0037 Coursework
COMP0037 Coursework 1 Term 2, 2019 "Path Planning in a Known World" Investigating Path Pla ...
- 多测师肖sir_高级金牌讲师_jenkins持续集成测试(001)
Jenkins操作手册 =================================================================== 一.jenkins介绍 1.持续集成(C ...
- [转] ICRA2022 SLAM相关论文整理
目录 视觉SLAM相关 线.面.3Dfeature 多相机系统 VIO+GPS 其他 数据集 三维重建 语义SLAM Special sensor Lidar相关 视觉SLAM相关 线.面.3Dfea ...
- 基于ISE的设计实现基础
所谓实现(Implement)是将综合输出的逻辑网表翻译成所选器件的底层模块与硬件原语,将设计映射到器件结构上,进行布局布线,达到在选定器件上实现设计的目的.实现主要分为3个步骤:翻译(Transla ...
- 查看tomcat启动文件都干点啥---server对象
在上一章查看tomcat启动文件都干点啥---Catalina.java中说道了构造Server,,这次尝试着说一下Tomcat中Server的内容,首先看一下org.apache.catalina. ...
- tomcat(14)服务器组件和服务组件
[0]README 0.1)本文部分文字描述转自 "how tomcat works",旨在学习 "tomcat(14)服务器组件和服务组件" 的基础知识: 0 ...
最新文章
- 8月份Github上最热门的Python开源项目
- Android app按三层架构+MVC整理(重构)代码可行吗
- numpy matlab 索引不同,与Numpy相似的MATLAB数组索引
- The table(CF226D)
- Java GC系列(2):Java垃圾回收是如何工作的
- Eclipse下,LogCat(deprecated),显示不了内容,或者全部都是Unknown
- 手把手教你搭建机器学习+深度学习AI模型
- Android类似日历的翻转控件
- python 将字符串转换为字典
- MDK KEIL 下载算法程序 外部存储QSPI FLASH
- 量化7年1000万知与行,回测量化7年如果只每月定投5.4万到沪深300指数基金,能否实现7年1000万
- 【华人学者风采】胡事民 清华大学
- matlab 毕业论文题目,matlab论文题目
- 专题 | Innovus 2020: 创新,永无止境
- 如何使用WordPress建立亚马逊会员商店
- 数字孪生的思考 04 - 元宇宙的思考
- 小程序 正整数与char(character)的相互转换,十六进制与十进制相互转换
- 微型计算机简单并行接口实验心得,实验二简单并行接口.doc
- 突然悟到了“追求卓越”的真谛
- 浅谈PS CC 2020——适合新手学习的最新版软件
热门文章
- 做最好的自己(李开复)
- 史上最难的初等几何问题?分享一个参考答案
- 机器学习(Machine Learning)深度学习(Deep Learning)资料(下)
- 软件是计算机所需要的程序,软件是指电脑运行所需要的各种程序及其有关资料.doc...
- 太原市山大附中2021年高考成绩查询,太原40所高中高考喜报汇总!
- 想自己搭建服务器,永久运行网站?一个U盘大小的树莓派就够了!
- 六轴UR机械臂正逆运动学求解_MATLAB代码(标准DH参数表)
- C语言编程>第八周 ③ 请编写一个函数void fun(char orig[],char result[],int flg),其功能是:删除一个字符串中指定下标的字符。其中,orig指向……
- [附源码]SSM计算机毕业设计小型银行贷款管理系统JAVA
- PropertyBeanUtils.copyProperties(dest, orig)