Hdu 3478 Catch

 

如果出现遍历图中的某个点都是在奇数时刻或者偶数时刻,那么小偷的藏点就是根据时间判定在某些的奇数点和偶数点了。

如果图出现奇数的环,即:有一个环由奇数个点组成,那么环中的某个点在奇数和偶数时刻都能到达(可以画图试试)。其实奇数环导致小偷藏点无规律的最大原因是:

在遍历最后奇数环的两个(必定是两个)未遍历点的时候他们是同奇(偶)的,然而还有一条边直接相连。导致在下一时刻,那两个点又可以同时变成偶(奇)。如果在回溯遍历的话,就会出现整张图在奇数时刻或者偶数时刻都能到达。

无向图G为二部图的充分必要条件是:
G至少有两个顶点,且其所有回路的长度均为偶数。

如果我们把图中奇数时刻能够到达的点归到X集合,偶数能到点归到Y集合,那么如果图中出现相同集合的点有
边相连,那么就不满足二分图的性质,即可输出YES,如果原图可二分图话,答案就是NO了。

然后就是经典的二分图判定。

CODE:

 

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;

const int MAXN = 100010;
const int MAXM = 500010;

struct Edge
{
    int v, next;
}edge[MAXM];

int n, m, s;
int cnt;

int first[MAXN];
bool color[MAXN], vis[MAXN];

void init()
{
    cnt = 0;
    memset(vis, 0sizeof(vis));
    memset(color, 0sizeof(color));
    memset(first, -1sizeof(first));
}

void read_graph(int u, int v)
{
    edge[cnt].v = v;
    edge[cnt].next = first[u], first[u] = cnt++;
}

int find(int u)
{
    for(int e = first[u]; e != -1; e = edge[e].next)
    {
        int v = edge[e].v;
        if(!vis[v])
        {
            vis[v] = 1;
            color[v] = !color[u];
            find(v);
        }
        else if(color[u] == color[v])    return false;
    }
    return true;
}

int main()
{
    int T, times = 0;
    scanf("%d", &T);
    while(T--)
    {
        init();
        scanf("%d%d%d", &n, &m, &s);
        while(m--)
        {
            int u, v;
            scanf("%d%d", &u, &v);
            read_graph(u, v);
            read_graph(v, u);
        }
        printf("Case %d: ", ++times);
        color[s] = 1;
        vis[s] = 1;
        printf(find(s)?"NO\n":"YES\n");
    }
    return 0;
}


 

转载于:https://www.cnblogs.com/g0feng/archive/2012/11/02/2751598.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/296422.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

节点

常用节点类型 节点类型常量 节点类型值 元素节点 element 1 属性节点 attribute 2 文本节点 text 3 注释节点 comment 8 文档…

Source Generator 单元测试

Source Generator 单元测试IntroSource Generator 是 .NET 5.0 以后引入的一个在编译期间动态生成代码的一个机制&#xff0c;介绍可以参考 C# 强大的新特性 Source GeneratorGetStarted使用起来还算比较简单的&#xff0c;我平时一般用 xunit&#xff0c;所以下面的示例也是使…

GetItemValue、Itemname使用方法

使用GetItemValue方法(1) NotesDocument类別的GetItemValue方法会传回文件中指定栏位的数值。不论栏位值是文字、数字、时间日期…等等&#xff0c; GetItemValue都是以阵列型态来回传&#xff0c;即使其中也沒有任何数值了。 使用GetItemValue方法(2) 语法 valueArray NotesD…

mysql二阶段提交有什么问题_MySQL的事务两阶段提交的技术有什么意义?

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":9,"count":9}]},"card":[{"des":"用于处理分布式环境下高性能事务一致性问题。…

又一个中国男人荣获巨奖!拿奖拿的手软,却坦言“我对诺奖没有兴趣”...

全世界只有3.14 % 的人关注了爆炸吧知识获得诺奖似乎只是时间问题2020年9月10日&#xff0c;2021年科学突破奖&#xff08; BREAKTHROUGH PRIZES&#xff09;正式公布。来自中国香港的科学家卢煜明获得了生命科学科学突破奖&#xff0c;华人数学家孙崧获得了数学新视野奖。前几…

ffbe攻略站_最终幻想勇气启示录ffbe兵员强化攻略

最终幻想勇气启示录兵员如何强化&#xff1f;兵员强化后有哪些加强&#xff1f;来看看9k9k小编带来的最终幻想勇气启示录ffbe兵员强化攻略。在兵员选栏中&#xff0c;我们可以看到有强化兵员这一选项&#xff0c;在这里面&#xff0c;我们可以选择兵员进行强化&#xff0c;强化…

无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”...

在用SQLServer2012附加SQLServer2000备份的数据库事&#xff0c;报如下错误&#xff1a; 无法打开物理文件“E:\Database\VRVIES6841-FZ01-Global\VRVEIS.mdf”。操作系统错误 5:“5(拒绝访问。)”。 (Microsoft SQL Server&#xff0c;错误: 5120) 解决方法&#xff1a; 1.先在…

IIS6注册.net4.0

开始----运行---cmd回车-----cd c:/windows/microsoft.net/framework/v4.0.30319回车&#xff0c;然后输入aspnet_regiis.exe -ir 就OK了

不止命令行!自定义VS生成事件

前言在VS中打开项目属性&#xff0c;选择“生成事件”选项卡。在“生成前事件命令行”或“生成后事件命令行”文本框中可以输入任何命令提示符或.bat文件中有效的命令&#xff1a;但是&#xff0c;有没有可能执行更丰富的命令呢&#xff1f;生成事件的本质上面设置的“生成事件…

如果你女朋友不让你看她卸妆......

1 如果你女朋友不让你看她卸妆▼2 扫地机器人的正确用法&#xff08;图源网络&#xff0c;侵删&#xff09;▼3 来比个心&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 精彩攻防战▼5 那些吃辣条的小学生长大了...▼6 人生的道路上有时候也要回头看看▼7 先礼…

[9月29日的脚本] 枚举SharePoint列表(PowerShell)

脚本下载: SPListEnumerator.zip http://gallery.technet.microsoft.com/scriptcenter/SPListEnumerator-PowerShell-b0ce0b9f 本脚本通过一个“大型”列表或者是文档库来枚举并为相关项提供信息。 在SharePoint&#xff08;2007版和2010版&#xff09;中&#xff0c;我们有一个…

深入理解javascript函数

函数实际上是对象,每个函数都是Function类型的实例,且与其他类型一样具有属性和方法.由于函数是对象,故函数名即为指向函数的指针,正是由于这一点,函数没有重载,重复定义函数只会后者替换前者. 函数的定义 函数的定义有三种: 函数声明function sum(num1,num2){ return num1num2…

mac mysql php_Mac搭建php开发环境:Apache+php+MySql

前言Windows搭建PHP开发环境很熟练了&#xff0c;要在自己的Mac搭建PHP开发环境还是第一次&#xff0c;因此分享给大家。Mac自带Apache、php,需要自己安装MySql。1.启动Apache// 启动Apache服务sudo apachectl start// 重启Apache服务sudo apachectl restart// 停止Apache服务s…

在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务

在 ASP.NET Core Web API中使用 Polly 构建弹性容错的微服务https://procodeguide.com/programming/polly-in-aspnet-core/在本文中&#xff0c;我们将了解如何在微服务中实现弹性容错&#xff0c;即在 ASP.NET Core 中使用 Polly 构建弹性微服务&#xff08;Web API&#xff0…

Android开发者指南(29) —— USB Host and Accessory

前言 本章内容为Android开发者指南的 USB章节&#xff0c;译为"USB主从设备"&#xff0c;版本为Android 4.0 r1&#xff0c;翻译来自&#xff1a;"太阳火神的美丽人生"&#xff0c;欢迎访问他的博客&#xff1a;"http://alot.sinaapp.com"&#…

知乎超高赞:都有哪些习惯值得长期坚持?

全世界只有3.14 % 的人关注了爆炸吧知识知乎上有个高赞问题&#xff1a;有哪些值得长期坚持下去就能改变人生的好习惯&#xff1f;其中最高频的回答是读书。随着经历和阅历的增加&#xff0c;越来越多的人清醒的认识到&#xff1a;读书不再是学生时代的事&#xff0c;而是一生的…

理解TCP为什么需要进行三次握手(白话)(转载)

原文地址:http://www.cnblogs.com/yuilin/archive/2012/11/05/2755298.html#comment_tip 首先简单介绍一下TCP三次握手 在TCP/IP协议中&#xff0c;TCP协议提供可靠的连接服务&#xff0c;采用三次握手建立一个连接。 第一次握手&#xff1a;建立连接时&#xff0c;客户端发送s…

mysql 免费前端_MySQL

MySQL这是一个关系型数据库&#xff0c;存在表的概念。结构数据库可以存放多张表&#xff0c;每个表可以存放多个字段&#xff0c;每个字段可以存放多个记录。DOS命令操作数据库PHPstudy使用终端打开数据库第一步&#xff1a;设置-->MySQL工具-->MySQL命令行&#xff1b;…

linux下无法umount移动设备

linux下无法umount移动设备&#xff0c;提示&#xff1a;device is busy&#xff0c;那可以试试这个指令fuser 列出占用设备的进程 fuser -m -v /usb/ 杀掉占用设备的进程&#xff0c;-i是每个进程询问一下。 fuser -m -v -i -k /usb/转载于:https://blog.51cto.com/wapcn/706…

惊了!日本街头出现透明公厕,竟有人排队抢着上!

全世界只有3.14 % 的人关注了爆炸吧知识最近在日本一个公园内&#xff0c;一间透明的厕所火了&#xff01;厕所为什么是透明的&#xff1f;如何保证私密性&#xff1f;还是一个装置艺术&#xff0c;在哗众取宠&#xff1f;相信你跟我有一样的疑问。其实啊&#xff0c;这是日本财…