BZOJ 1823 满汉全席
Description
Input
Output
Sample Input
3 4
m3 h1
m1 m2
h1 h3
h3 m2
2 4
h1 m2
m2 m1
h1 h2
m1 h2
Sample Output
BAD
HINT
Source
#include<stack>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cstdlib>
using namespace std; #define maxn 210
#define maxm 2010
int n,m,cnt,side[maxn],next[maxm],toit[maxm],dfn[maxn],id[maxn];
int tot,low[maxn],d[maxn],DFN;
stack <int> S; bool vis[maxn]; inline void init()
{
DFN = tot = cnt = ; memset(vis,false,*(n+));
memset(side,,*(n+)); memset(dfn,,*(n+));
} inline void add(int a,int b) { next[++cnt] = side[a]; side[a] = cnt; toit[cnt] = b; } inline void dfs(int now)
{
S.push(now); dfn[now] = low[now] = ++DFN;
for (int i = side[now];i;i = next[i])
{
if (vis[toit[i]]) continue;
if (!dfn[toit[i]]) dfs(toit[i]);
low[now] = min(low[toit[i]],low[now]);
}
if (low[now] == dfn[now])
{
++tot;
while (S.top() != now) id[S.top()] = tot,vis[S.top()] = true,S.pop();
id[S.top()] = tot,vis[S.top()] = true,S.pop();
}
} int main()
{
freopen("1823.in","r",stdin);
freopen("1823.out","w",stdout);
int T; scanf("%d",&T);
while (T--)
{
scanf("%d %d\n",&n,&m);
init();
while (m--)
{
char c1,c2; int a,b; bool o1,o2;
scanf("%c%d %c%d\n",&c1,&a,&c2,&b);
o1 = c1 == 'h'; o2 = c2 == 'h';
add((o1^)*n+a,o2*n+b);
add((o2^)*n+b,o1*n+a);
}
int i;
for (i = ;i <= n<<;++i) if (!dfn[i]) dfs(i);
for (i = ;i <= n;++i) if (id[i] == id[i+n]) { printf("BAD\n"); break; }
if (i <= n) continue;
printf("GOOD\n");
}
fclose(stdin); fclose(stdout);
return ;
}
BZOJ 1823 满汉全席的更多相关文章
- bzoj 1823: [JSOI2010]满汉全席 && bzoj 2199 : [Usaco2011 Jan]奶牛议会 2-sat
noip之前学的内容了,看到题竟然忘了怎么建图了,复习一下. 2-sat 大概是对于每个元素,它有0和1两种选择,必须选一个但不能同时选.这之间又有一些二元关系,比如x&y=1等等... 先把 ...
- BZOJ 1823: [JSOI2010]满汉全席( 2-sat )
2-sat...假如一个评委喜好的2样中..其中一样没做, 那另一样就一定要做, 这样去建图..然后跑tarjan. 时间复杂度O((n+m)*K) ------------------------- ...
- 【刷题】BZOJ 1823 [JSOI2010]满汉全席
Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而 ...
- bzoj 1823: [JSOI2010]满汉全席
#include<iostream> #include<cstdio> #include<cstring> using namespace std; ],next[ ...
- bzoj 1823: [JSOI2010]满汉全席【2-SAT+tarjan】
因为每种食材只有一份,所以两个评委的如果有要求同一种食材的两种做法就是不可行,用这个来建立2-SAT模型 然后跑tarjan判可行性即可 #include<iostream> #inclu ...
- 2-sat基础题 BZOJ 1823
http://www.lydsy.com/JudgeOnline/problem.php?id=1823 1823: [JSOI2010]满汉全席 Time Limit: 10 Sec Memory ...
- BZOJ 1823 JSOI 2010 盛宴 2-SAT
标题效果:有着n材料的种类,m陪审团. 每种材料具有两种不同的方法.每个法官都有两个标准.做出来的每一个法官的菜必须至少满足一个需求. 问:是否有这样一个程序. 思考:2-SAT经典的内置图形问题.因 ...
- 【BZOJ】1823: [JSOI2010]满汉全席(2-sat)
题目 传送门:QWQ 分析 2-sat模板(然而辣鸡如我还是调了好久) 代码 //bzoj 1823 2-sat #include <bits/stdc++.h> using namesp ...
- 2-SAT速成
本文只做总结性说明 2-SAT 2-SAT是k-SAT问题的一种,k-SAT问题在\(k>=3\)时已经被证明是NP完全问题 2-SAT问题定义比较简单 有n个布尔变量\(x_1-x_n\).给 ...
随机推荐
- 小程序原理,生成SQL SERVER 2008 数据库所有表的结构文档
作者:wide288 , 日期:2013-7-31 以前开发中,用 MYSQL 数据库,有个小程序 生成数据库结构文档.很方便,做为开发组的文档很有用. 现在开发中用到了 SQL SERVER 200 ...
- JQuery ajax调用asp.net的webMethod
本文章转载:http://www.cnblogs.com/zengxiangzhan/archive/2011/01/16/1936938.html 在vs2010中,用JQuery ajax调用as ...
- C语言--函数
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenVveW91MTMxNA==/font/5a6L5L2T/fontsize/400/fill/I0JBQk ...
- android 16 带返回值的activity
main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" andro ...
- phpnow安装教程
点评:搭建 PHP 其实不很难,只是有点繁琐.要是自己搭建一次 PHP + MySQL 环境很是费时.更糟的是,很多新手在配置 PHP 时常常出现这样那样的问题.诸如 mysql 扩展.zend 安装 ...
- Android热门网络框架Volley详解
.Volley简介 volley的英文意思为‘群发’.‘迸发’.Volley是2013年谷歌官方发布的一款Android平台上的网络通信库.Volley非常适合一些数据量不大,但需要频繁通信的网络操作 ...
- Java——(七)Map之HashMap和Hashtable实现类
------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- Map Map用于具有映射关系的数据,因此Map集合里保存着两组值,一组值用于保存Map里的ke ...
- 关于URL 解码, 编码
由于近期客户需要用到CA认证,此CA认证采用的是URL方式出传值 使用指定的编码对象将 URL 编码的字符串转换为已解码的字符串. 编码个人理解就是将某字符串以某种方式储存起来,而解码则以其编码格式得 ...
- 记一次网站服务器迁移(my)
遇到的难题: 基本没有遇到太大的问题,因为服务器环境是配好的阿里云环境,最后再nginx的rewrite配置遇到了一点问题,最后也算解决. 收获小点: 1) vim替换命令: 利用 :s 命令可以实现 ...
- Tomcat-java.lang.IllegalArgumentException: Document base F:apps does not exist or is not a readable
启动Tomcat的时候,报错:java.lang.IllegalArgumentException: Document base F:apps does not exist or is not a r ...