https://ac.nowcoder.com/acm/contest/330/F

C++版本一

题解:

std

图论,二分,拓扑排序

题意是想让大家判断有向图是否存在环。判断有向图是否有环可以使用拓扑排序。
但是不能每次加边的时候就进行判断。
由于不存在撤销操作,所以可以发现答案一定是一连串的Yes后再有一连串的No。
只需要二分最后一个Yes的位置,用拓扑排序/DFS判环即可。

#include <bits/stdc++.h>
using namespace std;bool ok(int x, int n, const vector<pair<int, int>>& edges)
{vector<vector<int>> G(n);vector<int> deg(n);for (int i = 0; i < x; i++){G[edges[i].first].push_back(edges[i].second);++deg[edges[i].second];}queue<int> q;for (int i = 0; i < n; i++)if (!deg[i]) q.push(i);int tot = 0;while (!q.empty()){int u = q.front();q.pop();++tot;for (auto& v : G[u])if (--deg[v] == 0) q.push(v);}return tot == n;
}int main()
{int n, m;scanf("%d%d", &n, &m);vector<pair<int, int>> edges;for (int i = 0, u, v; i < m; i++){scanf("%d%d", &u, &v);--u, --v;edges.emplace_back(u, v);}int l = 1, r = m, ans;while (l <= r){int mid = l + r >> 1;if (ok(mid, n, edges))l = mid + 1, ans = mid;elser = mid - 1;}for (int i = 0; i < ans; i++) puts("Yes");for (int i = ans; i < m; i++) puts("No");
}

Applese 的QQ群相关推荐

  1. Applese 的QQ群--(判断图是否成环)

    链接:https://ac.nowcoder.com/acm/contest/330/F 来源:牛客网 Applese 的QQ群 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262 ...

  2. 【牛客 - 330F】Applese 的QQ群(拓扑排序,二分)

    题干: Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a 叫做是 b 的"老板".这样一个群中就会有很多老板. 同时规定:如果 a ...

  3. Applese 的 QQ 群

    [题目描述] Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a 叫做是 b 的"老板".这样一个群中就会有很多老板. 同时规定:如果 ...

  4. Applese 的QQ群(二分+dfs)

    链接:https://ac.nowcoder.com/acm/contest/330/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...

  5. QQ群功能设计与心理学

    2019独角兽企业重金招聘Python工程师标准>>> 刚刚在一个Java技术交流群,发了个 "博客投票"的广告. 群主两眼一黑,瞬间就把我给干掉了. 看到QQ给 ...

  6. 关于QQ群共享一百多K以上的文件上传失败的问题

    关于QQ群共享一百多K文件以下能上传,一百多K以上的文件总是上传失败的问题,我纠结了很久,今天无意中把我的杀毒软件的防护控制给关掉,结果真上传上去了,不管多大的文件,希望能给同样遇到这个问题的朋友带来 ...

  7. 电子病历、HL7交流QQ群:14739311欢迎一起交流

    HC3i中国数字医疗论坛交流QQ群:14739311  欢迎加入,主要面向关注:医疗信息化.电子病历.PACS.HIS.区域医疗.HL7.医疗解决方案案例.医疗论文的网友 本文来自: HC3i数字医疗 ...

  8. QQ群管理员无法进行成员管理问题的解决

    一.问题的提出   连续几天都无法对QQ群内人员进行管理.在进入"成员管理"项目的时候系统总是提示:"无法取得群信息,连接服务器超时或者无响应,请重试".这样就 ...

  9. C# 获取QQ群数据的实现

    一,分析 1,群数据获取 当访问http://qun.qq.com/air/#mygroup我们通过Fiddler可以查看到QQ群列表是从http://qun.qq.com/air/group/min ...

最新文章

  1. ci ajax js,CodeIgniter4 AJAX请求
  2. SAP MM 如何看一个Inbound Delivery单据相关的IDoc?
  3. VTK:可视化之FastSplatter
  4. 软件开发模型和软件过程模型_什么是软件和软件过程?
  5. 理论基础 —— 线性表 —— 单链表
  6. [摘记]数值方法12——常微分方程组的积分
  7. 使用批处理文件来操作注册表
  8. 前端开发人员常用网站
  9. NHibernate之映射文件配置说明(转载1)
  10. JS实现自动轮播图效果(自适应屏幕宽度+手机触屏滑动)
  11. 今年立下的 Flag 倒了几个?
  12. [图文详解]图像处理中的高斯模糊
  13. 飞秋mac版字符乱码_Mac版QQ的OCR文字识别功能究竟有多好用?
  14. JavaScript学习手册四:JS对象
  15. mysql batch insert_使用batch insert解决MySQL的insert吞吐量问题
  16. 凯撒移位密码python_凯撒密码python拓展程序
  17. 计算机的基础单位和四种进制的基本知识
  18. Yolov5训练自己的数据集(windows10)
  19. DAZ 3D 软件简单安装和使用
  20. java 邮件 已读回执_java – 在Firebase群组消息传递应用中实施已读回执功能

热门文章

  1. php内部常量_PHP常量使用的几个需要注意的地方(谨慎使用PHP中的常量)
  2. android 提示文字,EditText 不能显示提示文字Hint
  3. mysql配置读写分离无效_MySQL数据库的同步配置+MySql 读写分离
  4. 常见计算机英语,常见计算机英语词汇
  5. python爬取app中的音频_Python爬取抖音APP,只需要十行代码
  6. mysql profile 不记录_mysql profile使用(转)
  7. android camera 实时滤镜,【Camera】Android平台Camera实时滤镜实现方法
  8. java handlersocket_HandlerSocket java客户端
  9. 聚类(上)K-mean算法
  10. php 支付宝订单查询_5. PHP接入支付宝单笔订单查询接口