[题目链接]

https://www.lydsy.com/JudgeOnline/problem.php?id=1823

[算法]

2-SAT

[代码]

#include<bits/stdc++.h>
using namespace std;
#define MAXN 110
#define MAXM 1010 struct edge
{
int to,nxt;
} e[MAXM << ]; int timer,cnt,top,tot;
int dfn[MAXN << ],low[MAXN << ],belong[MAXN << ],s[MAXN << ],head[MAXN << ];
bool instack[MAXN]; template <typename T> inline void read(T &x)
{
int f = ; x = ;
char c = getchar();
for (; !isdigit(c); c = getchar()) if (c == '-') f = -f;
for (; isdigit(c); c = getchar()) x = (x << ) + (x << ) + c - '';
x *= f;
}
inline void addedge(int u,int v)
{
tot++;
e[tot] = (edge){v,head[u]};
head[u] = tot;
}
inline void tarjan(int u)
{
low[u] = dfn[u] = ++timer;
instack[u] = true;
s[++top] = u;
for (int i = head[u]; i; i = e[i].nxt)
{
int v = e[i].to;
if (!dfn[v])
{
tarjan(v);
low[u] = min(low[u],low[v]);
} else if (instack[v]) low[u] = min(low[u],dfn[v]);
}
if (low[u] == dfn[u])
{
cnt++;
while (s[top + ] != u)
{
instack[s[top]] = false;
belong[s[top]] = cnt;
top--;
}
}
}
int main()
{ int T;
read(T);
while (T--)
{
int n,m;
read(n); read(m);
tot = ;
for (int i = ; i <= * n; i++) head[i] = ;
for (int i = ; i <= m; i++)
{
char a[] , b[];
scanf("%s%s",a + ,b + );
int t1 = , t2 = ;
for (int j = ; j <= strlen(a + ); j++) t1 = t1 * + a[j] - '';
for (int j = ; j <= strlen(b + ); j++) t2 = t2 * + b[j] - '';
if (a[] == 'm') addedge(t1 + n,t2 + (b[] == 'h') * n);
else addedge(t1,t2 + (b[] == 'h') * n);
if (b[] == 'm') addedge(t2 + n,t1 + (a[] == 'h') * n);
else addedge(t2,t1 + (a[] == 'h') * n);
}
timer = cnt = ;
for (int i = ; i <= * n; i++) low[i] = dfn[i] = ;
for (int i = ; i <= * n; i++)
{
if (!dfn[i])
tarjan(i);
}
bool ans = true;
for (int i = ; i <= n; i++)
{
if (belong[i] == belong[i + n])
{
ans = false;
break;
}
}
if (ans) printf("GOOD\n");
else printf("BAD\n");
} return ; }

[JSOI 2010] 满汉全席的更多相关文章

  1. JSOI 2010 连通数

    洛谷 P4306 [JSOI2010]连通数 洛谷传送门 题目描述 度量一个有向图联通情况的一个指标是连通数,指图中可达顶点对个的个数. 如图 顶点 11 可达 1,~2,~3,~4,~51, 2, ...

  2. BZOJ 1823 JSOI 2010 盛宴 2-SAT

    标题效果:有着n材料的种类,m陪审团. 每种材料具有两种不同的方法.每个法官都有两个标准.做出来的每一个法官的菜必须至少满足一个需求. 问:是否有这样一个程序. 思考:2-SAT经典的内置图形问题.因 ...

  3. 洛谷 P4171 [JSOI]满汉全席

    洛谷 最近刚刚学的2-sat,就刷了这道裸题. 2-sat问题一般是用tarjan求的,当出现(x,y)或(!x,y)或(x,!y)三种选择时,我们可以把!x->y,!y->x连边. 然后 ...

  4. BZOJ 1823 满汉全席

    Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而 ...

  5. 如何使用本地账户"完整"安装 SharePoint Server 2010+解决“New-SPConfigurationDatabase : 无法连接到 SharePoint_Config 的 SQL Server 的数据 库 master。此数据库可能不存在,或当前用户没有连接权限。”

    注:目前看到的解决本地账户完整安装SharePoint Server 2010的解决方案如下,但是,有但是的哦: 当我们选择了"完整"模式安装SharePointServer201 ...

  6. How to accept Track changes in Microsoft Word 2010?

    "Track changes" is wonderful and remarkable tool of Microsoft Word 2010. The feature allow ...

  7. [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二)

    [入门级] 基于 visual studio 2010 mvc4 的图书管理系统开发初步 (二) Date  周六 10 一月 2015 By 钟谢伟 Category website develop ...

  8. [入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一)

    [入门级] visual studio 2010 mvc4开发,用ibatis作为数据库访问媒介(一) Date  周二 06 一月 2015 By 钟谢伟 Tags mvc4 / asp.net 示 ...

  9. c++ builder 2010 错误 F1004 Internal compiler error at 0x9740d99 with base 0x9

    今天遇到一个奇怪的问题,拷贝项目后,在修改,会出现F1004 Internal compiler error at 0x9740d99 with base 0x9 ,不管怎么改,删除改动,都没用,关闭 ...

随机推荐

  1. ThinkPHP---框架介绍

    (1)什么是框架? ①框架是一堆包含了常量.方法和类等代码集合: ②半成品应用,只包含了项目开发时的底层架构,并不包含业务逻辑: ③包含一些设计模式,例如单例模式,工厂模式,AR(Active Rec ...

  2. gym101343 2017 JUST Programming Contest 2.0

    A.On The Way to Lucky Plaza  (数论)题意:m个店 每个店可以买一个小球的概率为p       求恰好在第m个店买到k个小球的概率 题解:求在前m-1个店买k-1个球再*p ...

  3. 批量生成随机字符串并保存到excel

    需要导入jxl.jar,commons-lang-2.6.jar 链接:https://pan.baidu.com/s/1NPPh24XWxkka68x2JQYlYA 提取码:jvj3 链接:http ...

  4. Docker 的基本使用

    一.简介 Docker 是一个开源的应用容器引擎,基于 Go 语言.Docker 支持将软件编译成一个镜像,然后在镜像中为软件做好配置,将镜像发布出去,其他使用者就可以直接使用这个镜像,而不需再和以前 ...

  5. Batchelor Prize

    awards in fluid mechanics The Prize of $25,000 is awarded every four years to a single scientist for ...

  6. BZOJ 5028 小Z的加油店

    [题解] 本题要求求出区间内的各个元素通过加减之后能够得出的最小的数,那么根据裴蜀定理可知答案就是区间内各个元素的最大公约数. 那么本题题意化简成了维护一个序列,支持区间加上某个数以及查询区间元素的最 ...

  7. [bzoj2431][HAOI2009][逆序对数列] (dp计数)

    Description 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数.若对于任意一个由1~n自然数组成的 数列,可以很容易求出有多少个逆序对数.那么逆 ...

  8. mysql数据库变更监控(canal)

    背景: 1. 一些项目的基础功能会有Audit Trace, 以记录系统用户所做过的所有记录. 2. 实时备份数据,比如mysql主从复制,一个用于面向应用,一个用于对应用数据库的实时备份. 3. 实 ...

  9. 零基础到架构师 不花钱学JavaEE(基础篇)- 概述

    Java简单来说是一门语言,Java能干什么? 网站:开发大,中,小型网站. 服务器端程序:企业级程序开发. APP:Android的APP基本使用Java开发. 云:Hadoop就是使用Java语言 ...

  10. mongodb shell之使用js(二)

    mongodb shell之使用js(二) mongodb shell不仅是个交互式shell,还能够使用js脚本进行访问. 使用js脚本进行交互的优点与缺点 (1)无需任何驱动或语言支持: (2)方 ...