题目简化和分析:

前言:这题目背景真奇怪。

我们可以将每种关系,看成一条边,如果出现奇数边环就不满足。

例如:\(a,b\) 异性 \(a,c\) 异性 \(b,c\)异性 这种情况是不满足的。

相当与一个奇数边环。

所以我们就的考虑如何判断环,我们可以使用二分图染色

如果一条边的两个端点的颜色一致,则是奇数边环。

注意:多组数据应该清空数组啊!((我被坑了

Solution:

#include<bits/stdc++.h>

using namespace std;

int n,m;

const int N=1e6+50;

struct edge{
int to,next;
}e[N<<1];
int head[N<<1],cnt,col[N<<1];
void add_edge(int u,int v){
++cnt;
e[cnt].to=v;
e[cnt].next=head[u];
head[u]=cnt;
} void work()
{
memset(col,0,sizeof(col));
memset(head,0,sizeof(head));
cnt=0;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;++i){
int u,v;
scanf("%d%d",&u,&v);
add_edge(u,v);
add_edge(v,u);
}
bool flag=0;
queue<int>q;
int ans=0;
for(int i=1;i<=n&&!flag;++i){
if(col[i]) continue;
q.push(i);
col[i]=1;
while(!q.empty()){
int x=q.front();
q.pop();
for(int j=head[x];j;j=e[j].next){
int y=e[j].to;
if(col[y]){
if(col[y]==col[x]){
flag=1;
break;
}
}else{
col[y]=3-col[x];
q.push(y);
}
}
}
}
if(flag){
printf("Suspicious bugs found!\n");
}else{
printf("No suspicious bugs found!\n");
}
} int main()
{
int t;
scanf("%d",&t);
for(int i=1;i<=t;++i){
printf("Scenario #%d:\n",i);
work();
}
return 0;
}

SP3377的更多相关文章

  1. PKU OJ A Bug's life

    http://bailian.openjudge.cn/tm2018/G/ #include <iostream> #include <vector> #include < ...

随机推荐

  1. 在js中修改less文件内样式

    在项目中使用使用进度条时遇到了一点问题,根据需求进度条的百分比需要在条内显示,但是当完成度太低时由于进度条背景和百分比值都是接近的颜色,所以此时无法显示进度值,这个时候需要根据完成度大小来进行判断,动 ...

  2. List去除重复数据的五种方式

    来自:CSDN,作者:多纤果冻 链接:https://blog.csdn.net/qq_37939251/article/details/90713643 以下介绍五种-不同的方法去除 Java 中A ...

  3. 2023-07-12:RocketMQ如何做到消息不丢失?

    2023-07-12:RocketMQ如何做到消息不丢失? 答案2023-07-12: RocketMQ通过刷盘机制.消息拉取机制和ACK机制等多种方式来确保消息投递的可靠性,防止消息丢失. 1.刷盘 ...

  4. GoFrame v2.5 版本发布,企业级 Golang 开发框架

    大家好啊,GoFrame 框架今天发布了 v2.5.0 正式版本啦! 本次版本主要是对已有功能组件以及开发工具上的改进工作.其中,开发工具新增了 gf gen ctrl 命令,以规范化定义.开发 AP ...

  5. Linux快速安装流量监控工具(实用版)

    前言: Linux流量监控工具,在此我推荐两种分别为: 1.nload(推荐)因为个人看着舒服点 2.iftop 以上两种任选其一即可,在此对两种都有介绍和安装教程,我写了,大家随意哈 nload安装 ...

  6. AttributeError:module‘win32com.gen_py has no attribute ‘CLSIDToClassMap‘

    解决方案如下: 1. 运行如下代码,找到文件所在位置 from win32com.client.gencache import EnsureDispatch import sys xl = Ensur ...

  7. asp.net core之异常处理

    在开发过程中,处理错误是一个重要的方面.ASP.NET Core提供了多种方式来处理错误,以确保应用程序的稳定性和可靠性. TryCatch TryCatch是最常见也是最基础的一种异常处理方式,只需 ...

  8. 【解惑】介绍三大数据库的with语句的写法及使用场景

    WITH 子句通常被称为 "Common Table Expressions"(CTE),俗称内存临时表,当使用 WITH 语句时,应注意具体的数据库版本和支持情况.以下是对 My ...

  9. Oracle内存管理方式介绍(转载)

    "Oracle内存管理可分为两大类,自动内存管理和手动内存管理.其中手动内存管理又可分为自动共享内存管理,手动共享内存管理,自动PGA内存管理以及手动PGA内存管理.本文会简单的介绍不同的内 ...

  10. 《SQLi-Labs》03. Less 11~15

    @ 目录 索引 Less-11 题解 原理 Less-12 题解 Less-13 题解 Less-14 题解 Less-15 题解 原理 sqli.开启新坑. 索引 Less-11:POST 回显注入 ...