SP3377
题目简化和分析:
前言:这题目背景真奇怪。
我们可以将每种关系,看成一条边,如果出现奇数边环就不满足。
例如:\(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的更多相关文章
- PKU OJ A Bug's life
http://bailian.openjudge.cn/tm2018/G/ #include <iostream> #include <vector> #include < ...
随机推荐
- 玉 - Sliver
基操 1.启动服务端 ./sliver-server_linux 2.启用多客户端协同 new-operator --name zha0gongz1 --lhost [serverip] #生成客户端 ...
- 【Shell】ps 命令
ps 命令 Linux ps (英文全拼:process status)命令用于显示当前进程的状态,类似于 windows 的任务管理器. 1. ps 常用的命令 ps -aux #显示所有进程信息 ...
- 一分钟学一个 Linux 命令 - rm
前言 大家好,我是 god23bin,欢迎回到咱们的<一分钟学一个 Linux 命令>系列,今天我要讲的是一个比较危险的命令,rm 命令,没错,你可以没听过 rm 命令,但是删库跑路你不可 ...
- 端路由原理及react-router的常用组件
在react中,通常都是使用单页面应用(SPA),即整个页面只有一个html,然后通过不同的url地址进行组件的匹配和切换. 我们看到的url地址可能会有两种形式,一种是 localhost:3000 ...
- [minio]挂载minio到本地
前言 将minio的bucket挂载到本地文件系统 环境 客户端系统版本:centos 7 MinIO节点IP:192.168.0.20 s3fs方式步骤 安装s3fs客户端(可能需要先安装epel- ...
- 树莓派烧录系统并在无外接屏幕的情况下连接VNC
上个月老板给了块树莓派3B,开心坏了,在咸鱼上掏了很多零件,花了一段时间做出了一个二驱动的智能小车,但是觉得小车太小,就在又在咸鱼上掏了个四区的地盘,但是在拆卸的过程中,发现树莓派WIFI没有了, ...
- avue-crud属性配置项参数笔记分享
Avue 是一个基于Element-plus低代码前端框架,它使用JSON 配置来生成页面,可以减少页面开发工作量,极大提升效率: 虽然Avue官网上面都有这些配置说明,但是如果刚开始接触不熟悉框架的 ...
- 【腾讯云 Cloud Studio 实战训练营】提升开发效率与协作:探索腾讯云 Cloud Studio 的强大功能与优势
一.前言 前几天发生了一个故事,发生了这样一个情景:一位新加入的同事刚刚入职不久,领取了一台崭新的电脑.随后,他投身于一个新项目,但却遇到了一个困扰:由于这台电脑没有管理员权限,他无法在上面安装所需的 ...
- Vu3+Element-Plus根据路由配置生成菜单导航栏
先看效果,整体界面结构如下 点击左侧菜单栏,右侧切换显示不同页面内容. Vue3使用路由–南河小站 1 路由配置 路由配置如下: const routes = [ { path: "&quo ...
- 每日一库:gosec
gosec 是一个用于在 Go 代码中查找安全问题的开源工具,它可以帮助发现可能的漏洞和潜在的安全风险.以下是关于 gosec 的详细介绍: 1. 工具概述: gosec 是一个静态分析工具,用于扫描 ...