传送门

2-SAT裸题

把每一道菜拆成两个点分别表示用汉式或满式

连边可以参考板子->这里

然后最尴尬的是我没发现$n<=100$然后化成整数的时候只考虑了$s[1]$结果炸掉了2333

 //minamoto
#include<cstdio>
#include<cstring>
template<class T>inline bool cmin(T&a,const T&b){return a>b?a=b,:;}
const int N=,M=;
int head[N],Next[M],ver[M],tot;
inline void add(int u,int v){
ver[++tot]=v,Next[tot]=head[u],head[u]=tot;
}
int dfn[N],low[N],bl[N],st[N],num,cnt,top,n,m;
inline void clear(){
memset(dfn,,sizeof(dfn)),
memset(low,,sizeof(low)),
memset(bl,,sizeof(bl)),
memset(st,,sizeof(st)),
memset(head,,sizeof(head));
top=cnt=num=tot=;
}
void tarjan(int u){
dfn[u]=low[u]=++num,st[++top]=u;
for(int i=head[u];i;i=Next[i]){
int v=ver[i];
if(!dfn[v]) tarjan(v),cmin(low[u],low[v]);
else if(!bl[v]) cmin(low[u],dfn[v]);
}
if(dfn[u]==low[u]) for(++cnt;st[top+]!=u;--top) bl[st[top]]=cnt;
}
char s[],ss[];
void solve(){
clear();
scanf("%d%d",&n,&m);
for(int i=;i<=m;++i){
scanf("%s%s",s,ss);
int a=s[]=='m',c=ss[]=='m';
int b=,d=,k;
k=;while(s[k]>=''&&s[k]<='') b=b*+s[k++]-'';
k=;while(ss[k]>=''&&ss[k]<='') d=d*+ss[k++]-'';
add(b+(!a)*n,d+c*n),add(d+(!c)*n,b+a*n);
}
for(int i=,l=*n;i<=l;++i) if(!dfn[i]) tarjan(i);
for(int i=;i<=n;++i)
if(bl[i]==bl[i+n]) return (void)(puts("BAD"));
puts("GOOD");
}
int main(){
// freopen("testdata.in","r",stdin);
int T;scanf("%d",&T);
while(T--) solve();
return ;
}

P4171 [JSOI2010]满汉全席(2-SAT)的更多相关文章

  1. 洛谷 P4171 [JSOI2010]满汉全席 解题报告

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

  2. 洛谷P4171 [JSOI2010] 满汉全席 [2-SAT,Tarjan]

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

  3. P4171 [JSOI2010]满汉全席

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

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

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

  5. Luogu P4171 [JSOI2010]满汉全席 2-sat

    终于搞懂了\(2-sat\).实际上是个挺简单的东西,像网络流一样关键在于建模. 问题:\(n\)个数\(A\),可以选择\(0\)和\(1\),现在给你\(m\)组条件\(A\),\(B\),对每个 ...

  6. LUOGU P4171 [JSOI2010]满汉全席

    传送门 解题思路 2-SAT 裸题. 代码 #include<iostream> #include<cstdio> #include<cstring> #inclu ...

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

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

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

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

  9. BZOJ_1823_[JSOI2010]满汉全席_2-sat+tarjan

    BZOJ_1823_[JSOI2010]满汉全席_2-sat 题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1823 分析:一道比较容易看出来的 ...

随机推荐

  1. 【LeetCode-面试算法经典-Java实现】【010-Regular Expresssion Matching(正則表達式匹配)】

    [010-Regular Expresssion Matching(正則表達式匹配)] [LeetCode-面试算法经典-Java实现][全部题目文件夹索引] 原题 Implement regular ...

  2. JAVA设计模式之 原型模式【Prototype Pattern】

    一.概述: 使用原型实例指定创建对象的种类,而且通过拷贝这些原型创建新的对象. 简单的说就是对象的拷贝生成新的对象(对象的克隆),原型模式是一种对象创建型模式. 二.使用场景: 创建新的对象能够通过对 ...

  3. 技术发展晴雨表 细数CPU接口10年变迁

    http://cpu.zol.com.cn/160/1602240_all.html#p1602240 本文导航 第1页:10年磨10剑 CPU发展突飞猛进 第2页:462与423对垒 开启CPU竞争 ...

  4. opencvSGBM半全局立体匹配算法的研究(1)

    转载请说明出处:http://blog.csdn.net/zhubaohua_bupt/article/details/51866567 这段时间对opencvSGBM半全局立体匹配算法进行了比較仔细 ...

  5. Java中常见的注解

    Java中常见的注解 1.JDK自带的注解@Override  @Deprecated  @Suppvisewarnings 常见第三方注解 Spring:@Autowired  @Service  ...

  6. SQL Server故障转移集群

    在XenServer集群上给客户搭建一个应用服务,要求有负载均衡,Web服务器用Windows Server 2008 R2 + IIS,数据库Sql Server 2008 R2,并且使用SAN存储 ...

  7. mysql下distinct和group by区别对比

    在数据表中记录了用户验证时使用的书目,现在想取出所有书目,用DISTINCT和group by都取到了我想要的结果,但我发现返回结果排列不同,distinct会按数据存放顺序一条条显示,而group ...

  8. 三种方法打印 main函数的返回地址的值(old EIP)(用途,你懂得!)

    这里能够简单的改动随意函数的返回地址.能够做到自己定义EIP的指向,就可以运行当前进程空间的随意指令,这里仅仅是让大家更清楚栈帧结构,没有涉及跨进程的inline HOOK 等,后面会陆续讲下读取随意 ...

  9. jvm 命令

    jps  jps主要用来输出JVM中运行的进程状态信息.语法格式如下: jps [options] [hostid] 如果不指定hostid就默认为当前主机或服务器. -q 不输出类名.Jar名和传入 ...

  10. Writing a Discard Server

    Netty.docs: User guide for 4.x https://netty.io/wiki/user-guide-for-4.x.html