#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int t,n,m,head[],next[],v[],cnt,dfn[],cnt1,low[];
int zhan[],zhan1[],top,shu[],shu1;
int du()
{
int a1;
char ch;
ch=getchar();
for(;ch!='m'&&ch!='h';ch=getchar());
scanf("%d",&a1);
if(ch=='m')
return a1*;
else
return a1*-;
}
void jia(int a1,int a2)
{
cnt++;
next[cnt]=head[a1];
head[a1]=cnt;
v[cnt]=a2;
return;
}
void dfs(int a1)
{
cnt1++;
low[a1]=dfn[a1]=cnt1;
zhan[a1]=;
top++;
zhan1[top]=a1;
for(int i=head[a1];i;i=next[i])
if(!dfn[v[i]])
{
dfs(v[i]);
low[a1]=min(low[a1],low[v[i]]);
}
else
if(zhan[v[i]])
low[a1]=min(low[a1],dfn[v[i]]);
if(low[a1]==dfn[a1])
{
shu1++;
for(int i=zhan1[top];i!=a1;top--,i=zhan1[top])
{
shu[i]=shu1;
zhan[i]=;
}
top--;
shu[a1]=shu1;
zhan[a1]=;
}
return;
}
int main()
{
scanf("%d",&t);
for(int i=;i<t;i++)
{
memset(next,,sizeof(next));
shu1=;
top=;
cnt=;
cnt1=;
scanf("%d %d",&n,&m);
for(int i=;i<=*n;i++)
head[i]=dfn[i]=;
for(int j=;j<m;j++)
{
int a1,a2,b1,b2;
a1=du();
b1=du();
if(a1%==)
a2=a1-;
else
a2=a1+;
if(b1%==)
b2=b1-;
else
b2=b1+;
jia(a2,b1);
jia(b2,a1);
} for(int i=;i<=*n;i++)
if(dfn[i]==)
dfs(i);
int kg=;
for(int i=;i<=n;i++)
if(shu[i*]==shu[i*-])
{
kg=;
printf("BAD\n");
break;
}
if(kg)
printf("GOOD\n");
}
return ;
}

2-set问题,根据评委需求建边,比如h1,h2那m2向h1建边,m1向h2建边。求2-set时用tarjin找环。

bzoj 1823: [JSOI2010]满汉全席的更多相关文章

  1. BZOJ 1823: [JSOI2010]满汉全席( 2-sat )

    2-sat...假如一个评委喜好的2样中..其中一样没做, 那另一样就一定要做, 这样去建图..然后跑tarjan. 时间复杂度O((n+m)*K) ------------------------- ...

  2. bzoj 1823: [JSOI2010]满汉全席 && bzoj 2199 : [Usaco2011 Jan]奶牛议会 2-sat

    noip之前学的内容了,看到题竟然忘了怎么建图了,复习一下. 2-sat 大概是对于每个元素,它有0和1两种选择,必须选一个但不能同时选.这之间又有一些二元关系,比如x&y=1等等... 先把 ...

  3. 【刷题】BZOJ 1823 [JSOI2010]满汉全席

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

  4. bzoj 1823: [JSOI2010]满汉全席【2-SAT+tarjan】

    因为每种食材只有一份,所以两个评委的如果有要求同一种食材的两种做法就是不可行,用这个来建立2-SAT模型 然后跑tarjan判可行性即可 #include<iostream> #inclu ...

  5. 【BZOJ】1823: [JSOI2010]满汉全席(2-sat)

    题目 传送门:QWQ 分析 2-sat模板(然而辣鸡如我还是调了好久) 代码 //bzoj 1823 2-sat #include <bits/stdc++.h> using namesp ...

  6. 1823: [JSOI2010]满汉全席 2-sat

    链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1823 思路 建图,缩点tarjan 判断impossible 代码 #include < ...

  7. 2-set 1823: [JSOI2010]满汉全席

    这个题告诉我变量循环使用,一定要赋好初值!!!!!! 一定要赋好初值!!!!!!一定要赋好初值!!!!!!一定要赋好初值!!!!!! #include<iostream>#include& ...

  8. bzoj1823 [JSOI2010]满汉全席(2-SAT)

    1823: [JSOI2010]满汉全席 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1246  Solved: 598[Submit][Status ...

  9. 2-sat基础题 BZOJ 1823

    http://www.lydsy.com/JudgeOnline/problem.php?id=1823 1823: [JSOI2010]满汉全席 Time Limit: 10 Sec  Memory ...

随机推荐

  1. 硬盘坏道 检测/修复 Windows

    1. 主要参看了:http://jingyan.baidu.com/article/2c8c281dfd93df0008252a9b.html 2. 2.1.hdtunepro.zip 是在 http ...

  2. 09 redo and undo

    本章提要-----------------------------------------------redo, undo 定义redo, undo 如何工作如何访问 redo, undo提交和回滚- ...

  3. js call与apply的区别-Tom

    .apply和.call方法是在函数原型中定义的两个方法(因此所有的函数都可以访问它)允许去手动设置函数调用的this值,他们用接受 的第一个参数作为this值,this 在调用的作用域中使用.这两个 ...

  4. 列车时刻表查询 jqm/ajax/xml

    <!doctype html><html lang="en"><head> <meta charset="UTF-8" ...

  5. 工作流学习——Activiti整体认识二步曲 (zhuan)

    http://blog.csdn.net/zwk626542417/article/details/46594505 ***************************************** ...

  6. OpenGL的glRotatef旋转变换函数详解

    OpenGL的glRotatef旋转变换函数详解 先看一下函数定义:void glRotatef(GLfloat angle,  GLfloat x,     GLfloat y,     GLflo ...

  7. PHP5中PDO的简单使用

    PHP5中PDO的简单使用 标签: php数据库mysql扩展extensionexception 2012-05-06 10:27 27753人阅读 评论(0) 收藏 举报  分类: PHP(6)  ...

  8. tomcat集群配置

    http://www.finereporthelp.com/help/24/1/3/3.html#a:4.1

  9. phalcon: dispatcher调度控制器

    phalcon: dispatcher调度控制器 我所理解的dispatcher调度控制器,实际上是对 router或者特定的url参数给与重组. 引用特定的类: //add use Phalcon\ ...

  10. 和为S的两个数VS和为S的连续正数序列

    其实这个题目如果没有限制时间复杂度的话,那么就很简单了,一遍一遍地扫描吧.时间复杂度肯定就是 O(n2)啰.但是这题目肯定不会这么简单,否则就是小学生的水平了嘛. 其实我刚到这题的时候想到的是用二叉查 ...