Applese的QQ群-(拓扑+二分)
链接:https://ac.nowcoder.com/acm/contest/330/F
来源:牛客网
题目描述
同时规定:如果 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"。
输入
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
#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<math.h>
#include<vector>
#include<queue>
#include<map>
#define ll long long
#define inf 0x3f3f3f3f
using namespace std;
const int maxx=1e5+;
int n,m,a,b;
int deg[maxx];
vector<int>vec[maxx];
struct node
{
int a;
int b;
};
node edge[*maxx];
queue<int>q; bool tuopu()
{
while(!q.empty()) q.pop();
for(int i=;i<=n;i++)
if(deg[i]==)
q.push(i);
int now;//当前头结点
while(!q.empty())
{ now=q.front();
q.pop();
for(int i=;i<vec[now].size();i++)
{
if( --deg[ vec[now][i] ]== )
q.push(vec[now][i]);
}
}
for(int i=;i<=n;i++)//检查有没有入度不为0的结点,有的话就是环了
if(deg[i])
return false;
return true;
} bool check(int x)
{
memset(deg,,sizeof(deg));
for(int i=;i<=n;i++) vec[i].clear();
for(int i=;i<=x;i++)//建图
{
node e=edge[i];
deg[e.a]++;
vec[e.b].push_back(e.a);
}
return tuopu();
} int main()
{
while(scanf("%d%d",&n,&m)!=EOF)
{
for(int i=;i<=m;i++)
scanf("%d%d",&edge[i].a,&edge[i].b);
int l=,r=m;
int mid;
int ans;
while(l<=r)
{
mid=(l+r)/;
if( check(mid) )
{
ans=mid;
l=mid+;
}
else
{
r=mid-;
}
}
for(int i=;i<=m;i++)
if(i<=ans)
printf("Yes\n");
else
printf("No\n");
} return ;
} /// a b表示a是b的老板,规定箭头由b指向a,a的入度+1,a←b,b的邻接表压入a
Applese的QQ群-(拓扑+二分)的更多相关文章
- Applese 的QQ群(二分+dfs)
链接:https://ac.nowcoder.com/acm/contest/330/F 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言5242 ...
- 牛客寒假算法基础集训营4 F Applese 的QQ群
链接:https://ac.nowcoder.com/acm/contest/330/F来源:牛客网 Applese 有一个QQ群.在这个群中,大家互相请教问题.如 b 向 a 请教过问题,就把 a ...
- 我们是怎么管理QQ群的
文章背景:腾讯平台上的qq群数以千万百万计,但99%的在吹水扯蛋,从早上的问好开始,到晚上的晚安,无一不浪费青春之时间,看之痛心,无力改变,只好自己建了一个,希望能以此来改变群内交流的氛围或环境. 以 ...
- 新开了一个ABP交流的QQ群(579765441 ),欢迎加入
因为ABP架构设计交流群人数一直爆满,很多想交流ABP的朋友无法加进群里, 刚新建了一个QQ群,群号579765441 (ABP架构设计交流群2),欢迎对ABP感兴趣的朋友加入. 欢迎加QQ群: AB ...
- 一行实现QQ群组头像,微信群组,圆角等效果. 并支持url直接加载图片
说点题外话. Coding中我们总是经历着这么几个过程. 学会使用: 不管是API也好, 开源库也好. 总是在最开始的学会去用. 了解实现原理: 可能会因为一些不兼容, 代码的异常状态的处理不够完美等 ...
- 山东省滕州市木石镇化石沟村QQ群116528924
山东省滕州市木石镇化石沟村QQ群116528924
- C# 软件绑定QQ群类开源放出
周天闲来无事写个公共类,可以添加到你们自己项目中限制必须加入你QQ群才可以使用. 代码简单,高手勿喷,有哪里不合理的请回帖让大家学习学习. using System; using System.Tex ...
- Android QQ群:343816731 欢迎大家加入探讨
Android QQ群:343816731 欢迎大家加入探讨.
- 虾皮工作室QQ群列表
各位博友: 本群不仅仅是提供好的资料,更重要是提供平台,提供解决问题的方法和思路.求人不如求己,掌握合理的方法和方式才是不断进步的根本.看我的文档,不单单是看内容,更应该从整理的方式和角度是深思,去想 ...
随机推荐
- 银行手机APP安全评估报告【转载】
猫头鹰工作室 我不相信命运,但尊敬命运 主页 大数据 Kafka Spark Hbase Redis Flume ActiveMQ 渗透测试 方法论 Kali测试 APP安全 OWASP 脑图 Too ...
- javascript继承之学习笔记
今天记录一下学习javascript的继承. 继承基本上是基于“类”来说的,而javascript中并不存在真正的类,所以就出现了各种模拟“类”的行为,然后就堂而皇之的使用起了类的概念.这里不谈“类” ...
- android 开发 写一个RecyclerView布局的聊天室,并且添加RecyclerView的点击事件
实现思维顺序: 1.首先我们需要准备2张.9的png图片(一张图片为左边聊天泡泡,一个图片为右边的聊天泡泡),可以使用draw9patch.bat工具制作,任何图片导入到drawable中. 2.需要 ...
- SQLServer树查询
感觉这个CTE递归查询蛮好用的,先举个例子: use City; go create table Tree ( ID int identity(1,1) primary key not null, N ...
- linux上常见的压缩解压缩的命令
压缩 tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.ta ...
- Maven项目指定JDK版本
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> ...
- SambaJava API
做一个 backup package net.jnas; import java.io.File; import java.io.FileInputStream; import java.io.Fil ...
- otter 数据同步
阿里巴巴分布式数据库同步系统(解决中美异地机房) 基本介绍: https://github.com/alibaba/otter 快速使用: https://github.com/alibaba/ott ...
- <记录> PHP Redis操作类
namespace common\controller; class Redis { public $redisObj = null; //redis实例化时静态变量 static protected ...
- Spring Cloud(2)A Eureka server端 服务注册建立
1. 父项目pom <dependency> <groupId>org.springframework.cloud</groupId> <artifactId ...