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

https://www.luogu.org/problemnew/show/P4171

题面太长啦就不粘过来啦!

裸的2-SAT用来练板子的。

显然属于“a和b之间必须选一种”模型,只要a'向b连边,b'向a连边即可。

(被这题读入坑了orz)

#include<cstdio>
#include<queue>
#include<cctype>
#include<cstring>
#include<cmath>
#include<stack>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
const int N=1005;
const int M=20005;
struct node{int to,nxt;
}e[M];
int T,n,m,head[N],cnt;
int dfn[N],low[N],t,l;
int to[N];
bool inq[N];
stack<int>q;
inline int neg(int x){if(x>n)return x-n;return x+n;
}
inline void add(int u,int v){e[++cnt].to=v;e[cnt].nxt=head[u];head[u]=cnt;
}
void tarjan(int u){dfn[u]=low[u]=++t;q.push(u);inq[u]=1;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(inq[v]){low[u]=min(low[u],dfn[v]);}}if(dfn[u]==low[u]){int v;l++;do{v=q.top();q.pop();inq[v]=0;to[v]=l;}while(u!=v);}
}
inline void init(){cnt=t=l=0;memset(head,0,sizeof(head));memset(dfn,0,sizeof(dfn));
}
inline int get(){int k;char ch=0;while(ch!='m'&&ch!='h')ch=getchar();scanf("%d",&k);if(ch=='h')k+=n;return k;
}
int main(){scanf("%d",&T);while(T--){init();scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int a=get(),b=get();add(neg(a),b);add(neg(b),a);}for(int i=1;i<=2*n;i++)if(!dfn[i])tarjan(i);bool flag=1;for(int i=1;i<=n&&flag;i++){if(to[i]==to[i+n])flag=0;}if(flag)puts("GOOD");else puts("BAD");}
}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+

+++++++++++++++++++++++++++++++++++++++++++

转载于:https://www.cnblogs.com/luyouqi233/p/9022107.html

BZOJ1823:[JSOI2010]满汉全席——题解相关推荐

  1. Bzoj1823 [JSOI2010]满汉全席

    Time Limit: 10 Sec  Memory Limit: 64 MB Submit: 1640  Solved: 798 Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同 ...

  2. BZOJ1823:[JSOI2010]满汉全席(2-SAT)

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

  3. BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点

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

  4. [洛谷P4171][JSOI2010]满汉全席

    题目大意:有$n$个点,每个点可以选或不选,有$m$组约束,形如$a,u,b,v$,表示$u=a,v=b$中至少要满足一个条件,问是否存在一组解,多组询问 题解:$2-SAT$,感觉是板子题呀,最后判 ...

  5. [JSOI2010] 满汉全席

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

  6. BZOJ2208:[JSOI2010]连通数——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=2208 floyd压位是神马东西-- 我们tarjan缩点之后反向拓扑就可以记录联通块可达状态,然后 ...

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

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

  8. P4171 [JSOI2010]满汉全席

    简要的学了一下2-sat,然而不会输出方案. 就是个sb模板题啦 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define il ...

  9. 一句话题解(20170801~20170125)

    8.1 bzoj 4720 noip2016 换教室 floyd预处理+期望(薛定谔的猫) bzoj 4318 OSU! 三次函数期望值 从一次.二次推得 8.2 bzoj 1076 状压+期望DP ...

最新文章

  1. 创建符合标准的、有语意的HTML页面——ASP.NET 2.0 CSS Friendly Control Adapters 1.0发布...
  2. 现在当兵有什么待遇复原以后_从今年征兵情况来看,以后当兵可能会越来越难,有6点原因...
  3. [云炬创业基础笔记] 第四章测试16
  4. Android应用Activity、Dialog、PopWindow、Toast窗体加入机制及源代码分析
  5. 二元相图软件_Materials Studio 领先的材料模拟软件
  6. [bzoj1412][ZJOI2009]狼和羊的故事
  7. 使用entityframework操作sqlite数据库
  8. 跨服务器查询信息的sql
  9. UnityParticle2:5x基础模块
  10. kotlin写java_Kotlin作为服务器端开发语言与Java相比会如何?
  11. 集中器与本地通信模块的交互流程
  12. mysql 删除的sql语句怎么写_mysql教程删除数据sql语句用法
  13. 梦想,因坚持而绽放——答大学生的兴趣与行动
  14. 手把手教你用java发送邮件
  15. Not Assigning
  16. html 3D球状旋转标签云文字云效果
  17. 区块链 | 区块链与物联网双剑合璧 这对CP如何改写未来?
  18. 安卓设置keychain_Keychain的使用
  19. 视频素材从哪里找?看这篇就对了
  20. MAC下SSL通讯问题、解决办法

热门文章

  1. linux文件编程(open、write、read、creat、lseek函数)
  2. window程序设计学会_是时候我们学会设计合适的饼图了
  3. 持久化的基于L2正则化和平均滑动模型的MNIST手写数字识别模型
  4. JavaScript中this指向
  5. Liunx 安装mysql 5.6.16
  6. 《帝王三部曲》——二月河
  7. VC编程实现IE风格的界面
  8. java标记错误_标记电子邮件Java时出错
  9. c/c++ new delete初探
  10. 【t057】任务分配