背景

每天中午的下课铃一响,浙江镇海中学的同学们都会冲出学校来附近的小饭馆吃饭,刹那间天昏地暗,飞砂走石,家家餐馆内都是一片黑压压的人 。馄饨店、饺子馆,在学校附近开一家红一家。身为镇海中学信息中心首席科学顾问兼资深信息学竞赛辅导老师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. iptables简易使用教程

    iptables是linux里比较常用的防火墙,也是centos7.0之前的版本默认自带的防火墙. 配置防火墙需特别注意一件事情:如果服务器在异地机房,需要谨慎配置端口,以免造成新配置生效后无法远程登 ...

  2. CentOS搭建git服务器实测

    Git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议 1,安装: CentOS/Fedora: yum install git Ubuntu/Debian: ...

  3. 迁移,移动.vagrant.d目录

    默认在 C:\Users\***\.vagrant.d 然后下面有boxes目录 想迁移到其它目录 setx VAGRANT_HOME "/d/.vagrant.d/" setx ...

  4. /usr/bin/mysqld_safe_helper: Cannot change uid/gid (errno: 1) (转)

    From: https://www.rootusers.com/how-to-fix-mariadb-10-0-29-selinux-update-failure/ 安装mysql 10.0.29后, ...

  5. android假设给TextView或EditText的email链接加下划线,并在点击在email连接上能够弹框显示

    怎样把textview的一些文字加上背景色: Spannable str = new SpannableString("#fdsfdfsdfdsfd#"); Matcher mat ...

  6. vue-cli3.0升级失败,vue-cli卸载不掉,vue-cli升级不了3.0

    https://juejin.im/post/5bf7d67c51882518805acb1a vue-cli3.0 使用图形化界面创建和管理项目

  7. <转载> pycharm快捷键及一些常用设置

    1.编辑(Editing ) Ctrl + Space 基本的代码完成(类.方法.属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl ...

  8. MapReduce-PRODUCTION-DEMAND

    [粗暴的HIVE-SQL]select xyz from abc where ty='sdk' and ret_code=0 and data_source_type=1 and dt between ...

  9. Python文件编码不可以使用UTF16

    1. The complete Python source file should use a single encoding. Embedding of differently encoded da ...

  10. Flask中的模板语法jinjia2

    Flask中默认的模板语言是Jinja2 I. Jinja2模板语言中的 for {% for foo in g %} {% endfor %} II. Jinja2模板语言中的 if {% if g ...