链接:https://ac.nowcoder.com/acm/contest/330/F
来源:牛客网

时间限制:C/C++ 2秒,其他语言4秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

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≤10^5,1≤n≤10^5
1≤m≤2⋅10^5,1≤m≤2⋅10^5
1≤a,b≤n

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#include<set>
using namespace std;
typedef long long ll;
int n,m;
struct edge{int x;int y;int nex;
}e[200005];
int cnt,head[100005],fr[200005],to[200005],in[100005],que[100005],vis[100005],tim,f[100005];
void adde(int xx,int yy){e[cnt].x=xx;e[cnt].y=yy;e[cnt].nex=head[xx];in[yy]++;head[xx]=cnt++;
}
bool dfs(int x){if(vis[x]==tim)return true;if(f[x])return false;f[x]=1;vis[x]=tim;for(int i=head[x];i!=-1;i=e[i].nex){int v=e[i].y;//vis[]if(dfs(v))return true;}vis[x]=0;return false;
}bool check(int x){cnt=0;tim=0;//  cout<<x<<"#####";memset(head,-1,sizeof(head));memset(vis,0,sizeof(vis));memset(f,0,sizeof(f));//memset(in,0,sizeof(in));for(int i=1;i<=x;i++){adde(fr[i],to[i]);}for(int i=1;i<=n;i++){tim++;if(!f[i]&&dfs(i)){return false;}}return true;//return topo();
}int main()
{cin >> n >> m;for(int i=1;i<=m;i++){scanf("%d%d",&fr[i],&to[i]);}int l=1;int r=m;int ans=0;while(l<=r){int mid=(l+r)/2;if(check(mid)){ans=mid;l=mid+1;}else{r=mid-1;}}for(int i=1;i<=m;i++){if(i<=ans){printf("Yes\n");}else{printf("No\n");}}return 0;
}

Applese 的QQ群(二分+dfs)相关推荐

  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群

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

  5. QQ群数据的切割与归并(数据分析案例四)

    本节内容的数据见电脑F:\python数据\Python海量数据(精缩版) 或 百度网盘"我的数据文件/Python海量数据" 一.先了解下QQ群的数据 1.QQ目录下的文件 (Q ...

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

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

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

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

  8. [SCOI2005]栅栏(贪心+二分+dfs)难度⭐⭐⭐⭐

    [SCOI2005]栅栏(贪心+二分+dfs) P2329 [SCOI2005]栅栏 题目描述 农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材.于是农夫约翰到木材店购买木材. ...

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

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

最新文章

  1. 全面改用HTML5+CSS3来架构
  2. cvid matlab,WAKE-WIN10-SOFT-软件-Matlab配置及工具箱
  3. java shiro登录实例_Shiro安全框架入门篇(登录验证实例详解与源码)
  4. jzoj4743-积木【状压dp】
  5. 如何使用ArchUnit测试Java项目的体系结构
  6. frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory
  7. 万丰科技机器人排名_机器人系统集成“7宗最”
  8. 数值和布尔值的解构赋值
  9. nexus批量更新jar包
  10. 3结构介绍_接收机基本结构
  11. 重磅|前浪、后浪 一起迎接风口! BCS 2020向全球发起议题征集
  12. CAD软件下载,打版,服装CAD设计软件
  13. 【原创】StackDocklet 完美攻略
  14. html5 加入收藏夹,设为首页、添加到收藏夹代码
  15. 期货反向跟单这个模式、大家目前都耳熟能详,操作原理也算是人尽皆知了!
  16. 微信登陆、支付接口对接整理
  17. 分享5个高质无损音乐网站,歌曲很丰富,爱听歌的小伙伴有耳福了
  18. html5 3d 图片动画制作软件,9款令人惊叹的HTML5 3D动画应用
  19. NLP初学-简易聊天机器人
  20. redis 空格问题

热门文章

  1. 如何恢复删除的照片和视频?可以试试看
  2. dorado是什么?
  3. vue项目实现从商品列表页跳转详情页后,返回列表页保持页面在原位置,且列表页刷新的方法
  4. 获取全球各大证券交易所的全部股票交易信息
  5. 物资管理系统源代码 php mysql_企业物资采购管理系统的设计与实现(PHP,MySQL)
  6. SQL创建常用的客户表及联系人表
  7. @Docker三剑客(三大编排工具):Compose、Machine和Swarm
  8. android自动启动无障碍服务,Xamarin.Android:如何开启无障碍服务永久
  9. docker swarm 创建服务并挂载数据卷
  10. 史上最全的iOS各种设备信息获取总结(iPhone8/iPhone X 已更新)