Applese 的QQ群(二分+dfs)
链接: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)相关推荐
- Applese 的QQ群--(判断图是否成环)
链接:https://ac.nowcoder.com/acm/contest/330/F 来源:牛客网 Applese 的QQ群 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262 ...
- 【牛客 - 330F】Applese 的QQ群(拓扑排序,二分)
题干: Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a 叫做是 b 的"老板".这样一个群中就会有很多老板. 同时规定:如果 a ...
- Applese 的 QQ 群
[题目描述] Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a 叫做是 b 的"老板".这样一个群中就会有很多老板. 同时规定:如果 ...
- Applese 的QQ群
https://ac.nowcoder.com/acm/contest/330/F C++版本一 题解: std 图论,二分,拓扑排序 题意是想让大家判断有向图是否存在环.判断有向图是否有环可以使用拓 ...
- QQ群数据的切割与归并(数据分析案例四)
本节内容的数据见电脑F:\python数据\Python海量数据(精缩版) 或 百度网盘"我的数据文件/Python海量数据" 一.先了解下QQ群的数据 1.QQ目录下的文件 (Q ...
- QQ群功能设计与心理学
2019独角兽企业重金招聘Python工程师标准>>> 刚刚在一个Java技术交流群,发了个 "博客投票"的广告. 群主两眼一黑,瞬间就把我给干掉了. 看到QQ给 ...
- 关于QQ群共享一百多K以上的文件上传失败的问题
关于QQ群共享一百多K文件以下能上传,一百多K以上的文件总是上传失败的问题,我纠结了很久,今天无意中把我的杀毒软件的防护控制给关掉,结果真上传上去了,不管多大的文件,希望能给同样遇到这个问题的朋友带来 ...
- [SCOI2005]栅栏(贪心+二分+dfs)难度⭐⭐⭐⭐
[SCOI2005]栅栏(贪心+二分+dfs) P2329 [SCOI2005]栅栏 题目描述 农夫约翰打算建立一个栅栏将他的牧场给围起来,因此他需要一些特定规格的木材.于是农夫约翰到木材店购买木材. ...
- 电子病历、HL7交流QQ群:14739311欢迎一起交流
HC3i中国数字医疗论坛交流QQ群:14739311 欢迎加入,主要面向关注:医疗信息化.电子病历.PACS.HIS.区域医疗.HL7.医疗解决方案案例.医疗论文的网友 本文来自: HC3i数字医疗 ...
最新文章
- 全面改用HTML5+CSS3来架构
- cvid matlab,WAKE-WIN10-SOFT-软件-Matlab配置及工具箱
- java shiro登录实例_Shiro安全框架入门篇(登录验证实例详解与源码)
- jzoj4743-积木【状压dp】
- 如何使用ArchUnit测试Java项目的体系结构
- frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory
- 万丰科技机器人排名_机器人系统集成“7宗最”
- 数值和布尔值的解构赋值
- nexus批量更新jar包
- 3结构介绍_接收机基本结构
- 重磅|前浪、后浪 一起迎接风口! BCS 2020向全球发起议题征集
- CAD软件下载,打版,服装CAD设计软件
- 【原创】StackDocklet 完美攻略
- html5 加入收藏夹,设为首页、添加到收藏夹代码
- 期货反向跟单这个模式、大家目前都耳熟能详,操作原理也算是人尽皆知了!
- 微信登陆、支付接口对接整理
- 分享5个高质无损音乐网站,歌曲很丰富,爱听歌的小伙伴有耳福了
- html5 3d 图片动画制作软件,9款令人惊叹的HTML5 3D动画应用
- NLP初学-简易聊天机器人
- redis 空格问题
热门文章
- 如何恢复删除的照片和视频?可以试试看
- dorado是什么?
- vue项目实现从商品列表页跳转详情页后,返回列表页保持页面在原位置,且列表页刷新的方法
- 获取全球各大证券交易所的全部股票交易信息
- 物资管理系统源代码 php mysql_企业物资采购管理系统的设计与实现(PHP,MySQL)
- SQL创建常用的客户表及联系人表
- @Docker三剑客(三大编排工具):Compose、Machine和Swarm
- android自动启动无障碍服务,Xamarin.Android:如何开启无障碍服务永久
- docker swarm 创建服务并挂载数据卷
- 史上最全的iOS各种设备信息获取总结(iPhone8/iPhone X 已更新)