#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找环。

最新文章

  1. Notepade ++ 替换每行最后的换行符
  2. 小谈KVC中KeyPath的集合运算符
  3. T—SQL用法剪辑,方便以后查看
  4. angular的directive笔记
  5. Qt Creator编辑器乱问题
  6. ShellSort Shell排序
  7. JavaScript忍者秘籍——原型
  8. 2456: mode
  9. QoS技术总结
  10. Web API 2 添加Models and Controllers Part 2.
  11. mysql知识积累
  12. R链接hive/oracle/mysql
  13. OPENSTACK重装系统失败导致虚拟机状态为error
  14. cross validation笔记
  15. [lua, mysql] 将多条记录数据组合成一条sql插入语句(for mysql)
  16. flask + mysql写的简单监控系统
  17. Linux账号和密码文件 /etc/passwd和/etc/shadow
  18. 小项目,吃货联盟,java初级小项目,源代码
  19. 【转】2012年7月9 – 知名网页游戏公司 PHP高级工程师 最新面试题
  20. ORACLE修改表空间方法

热门文章

  1. MyEclipse Servers视窗出现“Could not create the view: An unexpected exception was thrown”错误解决办法
  2. amd64_or_ia64?
  3. python中模块sys与os的一些常用方法
  4. 图形处理的api
  5. pod JONSKit.h MBProgress.h 找不到头文件,怎么办?
  6. ps前端切图常用快捷键
  7. 转:内存区划分、内存分配、常量存储区、堆、栈、自由存储区、全局区[C++][内存管理][转载]
  8. D3.js 其他选择元素方法
  9. Gitweb 安装与配置
  10. Lua 栈中元素的位置