背景

每天中午的下课铃一响,浙江镇海中学的同学们都会冲出学校来附近的小饭馆吃饭,刹那间天昏地暗,飞砂走石,家家餐馆内都是一片黑压压的人 。馄饨店、饺子馆,在学校附近开一家红一家。身为镇海中学信息中心首席科学顾问兼资深信息学竞赛辅导老师Dennis看到了,他为了在业余时间方便学生,他租了学校附近的一家店面,雇了几个拉面师傅,开了一家“正宗兰州牛肉拉面馆”,生意还不错。

描述

Dennis的拉面馆隆重开张后,虽然生意很好,但是由于Dennis相信“没有最好,只有更好”(就像他对算法复杂度的不懈追求),于是他带领着他的徒弟光光和娃娃一起来到拉面的故乡——甘肃的兰州,寻找传说中世界上最好吃的拉面……
在当地人的指导下,Dennis 一行来到了一个偏僻的小村子,传说这个村子就盛产世界上最好吃的拉面。可是Dennis很快发现了这个村子的村民的奇特之处:这些村名喜欢说谎话。由于完全说谎话很容易会被识破,所以他们会有时说真话而有时说假话,好在经过调查,光光已经知道了村民的这个习俗。为了获得传说中美味拉面的神秘配方,Dennis精心设计了n个问题,每个问题只需回答“是”或“否”就行,然后根据答案,他就能得到拉面的秘方。于是光光和娃娃问了m个不同的村民,对于每个村民,从n个问题中挑出2个不同的问题问他,并纪录下答案交予Dennis统计。可是Dennis发现这样的统计太复杂和困难了,于是他想知道根据村名的回答,n个问题的答案可能有的情况总数。

格式

输入格式

第一行是两个整数n(1<=n<=200),m(0<=m<=10000),分别表示Dennis准备了n个问题,问了m个不同的村名。接下去m行,第i+1行有四个整数a,b,c,d(1<=a,c<=n),表示第i个村民对第a个问题的答案是b,对第c个问题的答案是d。当b或d是0时表示答案为“否”,是1时表示答案为“是”。一个村民在回答时不会中途改变其说谎性,即他要么一直说真话,要么一直说假话。但我们不知道他到底在说真话还是假话。

输出格式

一个整数,表示可能的情况总数。如果不可能,则输出“No Answer”

输入1:

2 2
1 1 2 0
1 1 2 1

输出1:

No Answer

输入2:

4 4
1 1 2 1
1 1 3 0
2 1 4 1
3 1 4 0

输出2:

2

思路:2集合问题注意高精度。

#include <iostream>
#include <string.h>
using namespace std;
const int MAXN=;
int n,m;
int par[MAXN];
int vis[MAXN];
void prep()
{
for(int i=;i<MAXN;i++)
{
par[i]=i;
}
}
int fnd(int x)
{
if(par[x]==x)
{
return x;
}
return par[x]=fnd(par[x]);
}
void unite(int x,int y)
{
int a=fnd(x);
int b=fnd(y);
par[a]=b;
}
bool same(int x,int y)
{
return fnd(x)==fnd(y);
}
int main()
{
prep();
cin>>n>>m;
bool mark=true;
for(int i=;i<m;i++)
{
int a,b,c,d;
cin>>a>>b>>c>>d;
if(mark)
{
if(b==d)
{
if(!same(a,c+n))
{
unite(a,c);
unite(a+n,c+n);
}
else
{
mark=false;
}
}
else
{
if(!same(a,c))
{
unite(a,c+n);
unite(a+n,c);
}
else
{
mark=false;
}
}
}
}
if(mark)
{
int cnt=;
for(int i=;i<=n;i++)
{
int root=fnd(i);
if(root<=n&&!vis[root])
{
cnt++;
vis[root]=;
}
}
int res[MAXN],len;
res[]=;
len=;
for(int i=;i<cnt;i++)
{
int up=;
for(int j=;j<len;j++)
{
int z=*res[j]+up;
res[j]=z%;
up=z/;
}
if(up!=) res[len++]=up;
}
for(int i=len-;i>=;i--)
{
cout<<res[i];
}
cout<<res[]<<endl;
}
else
{
cout<<"No Answer"<<endl;
}
return ;
}
 

Vijos1221:神秘的配方的更多相关文章

  1. 神秘代理-Proxy

    前言: 代理模式作为常见的设计模式之一,在项目开发中不可或缺.本文就尝试着揭开代理的神秘面纱,也欢迎各路人批评指正! 1.如何实现代理: [假设有个关于汽车移动(move)的计时需求]设计:Movea ...

  2. 深入理解javascript对象系列第三篇——神秘的属性描述符

    × 目录 [1]类型 [2]方法 [3]详述[4]状态 前面的话 对于操作系统中的文件,我们可以驾轻就熟将其设置为只读.隐藏.系统文件或普通文件.于对象来说,属性描述符提供类似的功能,用来描述对象的值 ...

  3. [BZOJ4408][Fjoi 2016]神秘数

    [BZOJ4408][Fjoi 2016]神秘数 试题描述 一个可重复数字集合S的神秘数定义为最小的不能被S的子集的和表示的正整数.例如S={1,1,1,4,13},1 = 12 = 1+13 = 1 ...

  4. 在c++这片神秘的大陆上

    在c++这片神秘的大陆上,有一个无往而不利的地下王国,据说其手段血腥残忍,却深得民心,因为,他们是侠,是剑胆琴心,诗肠酒骨的侠客,他们不知解决了多少疑难杂症,除去了多少问题漏洞,而他们的首领-> ...

  5. 揭开GrowingIO无埋点的神秘面纱

    揭开GrowingIO无埋点的神秘面纱   早在研究用户行为分析的时候,就发现国内的GrowingIO在宣传无埋点技术,最近正好抽出时间来研究一下所谓的无埋点到底是什么样的. 我分六部分来分析一下无埋 ...

  6. [bzoj4408][Fjoi2016]神秘数

    Description 一个可重复数字集合$S$的神秘数定义为最小的不能被$S$的子集的和表示的正整数. 例如$S={1,1,1,4,13}$, $1=1$, $2=1+1$, $3=1+1+1$, ...

  7. 揭开Sass和Compass的神秘面纱

    揭开Sass和Compass的神秘面纱 可能之前你像我一样,对Sass和Compass毫无所知,好一点儿的可能知道它们是用来作为CSS预处理的.那么,今天请跟我一起学习下Sass和Compass的一些 ...

  8. Java实现批量下载《神秘的程序员》漫画

    上周看了西乔的博客“西乔的九卦”.<神秘的程序员们>系列漫画感觉很喜欢,很搞笑.这些漫画经常出现在CSDN“程序员”杂志末页的,以前也看过一些. 后来就想下载下来,但是一张一张的点击右键“ ...

  9. ASP.NET 运行时详解 揭开请求过程神秘面纱

    对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就 ...

随机推荐

  1. PLSQL怎样导出oracle表结构

    tools->export tables 是导出表结构还有数据 tools->export user objects是导出表结构   可以用tools->export tables ...

  2. 串口设置-stty--设置终端线

    stty - chang and print terminal line settings SYNOPSIS stty [-F DEVICE | --file=DEVICE] [SETTING]... ...

  3. python实现接口测试到unittest框架集成

    接口测试是面试测试岗位基本都会问到的问题,但是对于一些刚做测试的小伙伴可能并不是很熟悉,也有可能了解接口测试,但是完全不知道接口自动化怎么做.下面我们大概介绍一下. 首先我们需要知道接口自动化测试的目 ...

  4. golang 内存池

    一般来说,内存池都是采用预分配的方式,分为固定大小的和非固定大小块,固定大小的内存效率高,非固定大小灵活.同时,分为单线程和多线程版的,单线程不需要考虑并发问题. 一般内存池的实现思想:分配一块比较大 ...

  5. 前端编程提高之旅(三)----浏览器兼容之IE6

    在爱奇艺实习期间,乐帝主要负责移动端活动页面的制作,因为移动浏览器是随着智能手机兴起的,这就决定了移动端不会重蹈浏览器兼容问题的覆辙.一開始就比較好的支持web标准,而纵观整个互联网行业,移动web开 ...

  6. 九度OJ 1044:Pre-Post(先序后序) (n叉树、递归)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:701 解决:398 题目描述: We are all familiar with pre-order, in-order and post- ...

  7. 关于dubbo的负载均衡

    1 dubbo的集群 将同一个服务部署到多个机器上,然后全部注册到注册中心.这样的多个机器就是一个dubbo集群了. 2 dubbo的负载均衡是怎么回事 由于多台机器上都有同一个服务,因此consum ...

  8. update module (更新模块)

    [转自http://blog.csdn.net/zhongguomao/article/details/6712568] function module:更新程序必须用一个特殊的FM(update m ...

  9. Java for LeetCode 082 Remove Duplicates from Sorted List II

    Given a sorted linked list, delete all nodes that have duplicate numbers, leaving only distinct numb ...

  10. ZOJ - 4020 Traffic Light 【BFS】

    题目链接 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=4020 题意 给出一张地图 以及起点和终点 求是否能从起点走到终点 ...