题干:

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

同时规定:如果 a 是 b 的老板,b 是 c 的老板,那么 a 也是 c 的老板。

为了不破坏群里面和谐交流的氛围,Applese 定了一个群规:不允许出现 a 既是 b 的老板, b 又是 a 的老板。

你需要帮助 Applese 判断大家是否遵守了群规。

输入描述:

第一行两个整数 n, m,表示群里的人数以及请教问题的数量。
接下来 m 行,每行两个整数 a, b,表示 a 是 b 的"老板",即 b 向 a 请教了一个问题。
注:无论是否违反了群规,a 都会成为 b 的老板。

输出描述:

对于每次提问,输出一行"Yes"表示大家都遵守了群规,反之输出"No"。

示例1

输入

复制

4 4
1 2
2 3
3 1
1 4

输出

复制

Yes
Yes
No
No

备注:

1≤n≤1051≤n≤105
1≤m≤2⋅1051≤m≤2⋅105
1≤a,b≤n

解题报告:

本来想搞一个种类并查集、、后来交上去wa了就没在管,,其实是个二分+check、、、(不难的题)check用topu一下就行了。

AC代码:

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<queue>
#include<map>
#include<vector>
#include<set>
#include<string>
#include<cmath>
#include<cstring>
#define ll long long
#define pb push_back
#define pm make_pair
#define fi first
#define se second
using namespace std;
const int MAX = 2e5 + 5;
struct Edge{int u,v;
} e[MAX];
int n,m;
int in[MAX];
vector<int> vv[MAX];
bool ok(int x) {for(int i = 1; i<=n; i++) in[i] = 0,vv[i].clear();for(int i = 1; i<=x; i++) {in[e[i].v]++;vv[e[i].u].pb(e[i].v);}queue<int> q;for(int i = 1; i<=n; i++) {if(in[i] == 0) q.push(i);}int cnt = 0;while(q.size()) {int cur = q.front();q.pop();int up = vv[cur].size();cnt++;for(int i = 0; i<up; i++) {int to = vv[cur][i];in[to]--;if(in[to] == 0) q.push(to);}}if(cnt != n) return 0;else return 1;
}
int main()
{cin>>n>>m;for(int x,y,i = 1; i<=m; i++) {scanf("%d%d",&x,&y);e[i] = {x,y};}int l = 1,r = m;int mid = (l+r)>>1;int ans ;while(l<=r) {mid = (l+r)>>1;if(ok(mid)) ans = mid,l = mid+1;else r = mid-1;}for(int i = 1; i<=ans; i++) printf("Yes\n");for(int i = ans+1; i<=m; i++) printf("No\n");return 0 ;}

【牛客 - 330F】Applese 的QQ群(拓扑排序,二分)相关推荐

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

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

  2. qq群淘客怎么引流?淘客新手如何利用qq群引流?

    QQ群一直以来都是淘客的用户落地的一个渠道,厉害的淘客手下基本上都有几十甚至几百个这样的QQ群,自从微信的群发和机器人被打压之后,很多淘客又回到了QQ群,可见 QQ容易操作也容易进入,淘客使用度更高, ...

  3. 牛客题霸 单链表的选择排序 C++题解/答案

    牛客题霸 单链表的选择排序 C++题解/答案 题目描述 给定一个无序单链表,实现单链表的选择排序(按升序排序). 题解: 不可能手写排序,这辈子不可能手写排序.. 基础的链表操作,将链表内的数据存到v ...

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

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

  5. Applese 的 QQ 群

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

  6. Applese 的QQ群

    https://ac.nowcoder.com/acm/contest/330/F C++版本一 题解: std 图论,二分,拓扑排序 题意是想让大家判断有向图是否存在环.判断有向图是否有环可以使用拓 ...

  7. 牛客假日团队赛8:F.Telephone Lines(二分+spfa)

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

  8. Cutting Bamboos(牛客多校第九场H主席树+二分+思维)

    链接:https://ac.nowcoder.com/acm/contest/889/H 来源:牛客网 There are n bamboos arranged in a line. The i-th ...

  9. 牛客练习赛30: D. 消消乐(二分匹配+输出最小点覆盖)

    链接:https://ac.nowcoder.com/acm/contest/216/D 来源:牛客网 题目描述 r神在和小b比赛玩一个名为"消消乐"的游戏,在一个n*m的棋盘上, ...

最新文章

  1. 南大庄建军计算机学院讲座,教师成果 - 南京大学 - 电子信息专业国家级实验教学示范中心...
  2. MySql入门笔记二~悲催的用户
  3. call super class will trigger CGLIB
  4. mysql触发器如何获取当前表名_MCGS pro组态环境下,如何获取当前用户名,在画面上显示?...
  5. NOIP2016 DAY2 T3 愤怒的小鸟
  6. python入门指南txt-十分钟搞定 C/C++ 项目自动化构建 —— Xmake 入门指南
  7. linux设置为lunux文件夹,Linux设置环境变量时如何修改文件
  8. mysql 数据导入导出说明
  9. ElasticJob‐Lite:自定义作业分片策略
  10. MAC常用java开发软件
  11. Html转Word解决转存图片时候的跨域问题、默认打开视图问题
  12. 软件测试的艺术读书笔记<转>
  13. 中国协同工作空间管理软件行业市场供需与战略研究报告
  14. 一分钟学会看k线图_教你一分钟就能学会看k线图 不信来试 (图文)
  15. 数据库DataBase
  16. 【财务分析】ERP软件的财务管理系统具有哪些功能?
  17. 数组表示一个数加一的解决思路及JAVA代码实现
  18. 浪潮服务器找不到硬盘怎么办,BIOS里都找不到硬盘!我该怎么办?
  19. 数学建模论文格式(简洁易懂版,针对新手)
  20. 如何确定两台主机是否在同一个网段?

热门文章

  1. 第八章xgboost/lightGBM
  2. [Leedcode][JAVA][第202题][快乐数]
  3. CodeForces 841C (C) Leha and Function 贪心
  4. 康宁玻璃ct值计算公式_【钦州】CT室铅板生产厂家
  5. web前端开发——HTML学习
  6. 使用 IPsec 与组策略隔离服务器和域-第 7 章 IPsec 疑难解答
  7. mysql修改字段默认值_MySQL增删改查操作
  8. C语言#define宏定义可能注意不到的地方
  9. java 压缩文件夹_java 实现压缩文件(单文件 或 文件夹)
  10. FTP服务器和客户端源代码编写问题(ftp server client source)