【题目大意】

有n个材料,m个评委。每种材料可以被用来做满族菜或汉族菜,m个评委有两种可以让他满意的猜中。问是否可以满足所有评委要求?

【思路】

每天只能做三道题,我已经是一个废人了……(葛优躺.jpg)

裸2-SAT,先写了个两遍DFS的,速度略慢……24ms?

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<vector>
using namespace std;
const int MAXN=+;
vector<int> E[MAXN];
vector<int> rE[MAXN];
vector<int> vs;
int cmp[MAXN],vis[MAXN];
int cnt,n,m; void addedge(int u,int v)
{
E[u].push_back(v);
rE[v].push_back(u);
} void dfs(int u)
{
vis[u]=;
for (int i=;i<E[u].size();i++)
{
int v=E[u][i];
if (!vis[v]) dfs(v);
}
vs.push_back(u);
} void rdfs(int u,int t)
{
vis[u]=;
cmp[u]=t;
for (int i=;i<rE[u].size();i++)
{
int v=rE[u][i];
if (!vis[v]) rdfs(v,t);
}
} void init()
{
for (int i=;i<MAXN;i++) vector<int>().swap(E[i]);
for (int i=;i<MAXN;i++) vector<int>().swap(rE[i]);
scanf("%d%d",&n,&m);
for (int i=;i<m;i++)
{
char c1,c2;
int x,y,fx,fy;
getchar();
scanf("%c%d %c%d",&c1,&x,&c2,&y);
if (c1=='m') fx=x+n;else fx=x;
if (c2=='m') fy=y+n;else fy=y;
if (c1=='h') addedge(x+n,fy);else if (c1=='m') addedge(x,fy);
if (c2=='h') addedge(y+n,fx);else if (c1=='m') addedge(y,fx);
}
} void solve()
{
memset(vis,,sizeof(vis));
for (int i=;i<=n;i++) if (!vis[i]) dfs(i);
memset(vis,,sizeof(vis)),cnt=;
for (int i=vs.size()-;i>=;i--)
if (!vis[vs[i]]) rdfs(vs[i],++cnt);
} void get_ans()
{
for (int i=;i<=n;i++)
if (cmp[i]==cmp[i+n])
{
puts("BAD");
return;
}
puts("GOOD");
} int main()
{
int T;
scanf("%d",&T);
while (T--)
{
init();
solve();
get_ans();
}
return ;
}

【2-SAT(两次DFS版)】BZOJ1823-[JSOI2010]满汉全席的更多相关文章

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

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

  2. Bzoj1823 [JSOI2010]满汉全席

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

  3. BZOJ1823 [JSOI2010]满汉全席 2-sat

    原文链接http://www.cnblogs.com/zhouzhendong/p/8125944.html 题目传送门 - BZOJ1823 题意概括 有n道菜,分别可以做成满式和汉式(每道菜只能做 ...

  4. [bzoj1823][JSOI2010]满汉全席——2-SAT

    题目大意 题目又丑又长我就不贴了,说一下大意,有n种菜,m个评委,每一个评委又有两种喜好,每种菜有满汉两种做法,只能选一种.判断是否存在一种方案使得所有评委至少喜欢一种菜品.输入包含多组数据. 题解 ...

  5. BZOJ1823 [JSOI2010]满汉全席 【2-sat】

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

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

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

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

    [BZOJ1823][JSOI2010]满汉全席(2-sat) 题面 BZOJ 洛谷 题解 很明显的\(2-sat\)模板题,还不需要输出方案. 对于任意两组限制之间,检查有无同一种石材要用两种不同的 ...

  8. 【BZOJ1823】[JSOI2010]满汉全席 2-SAT

    [BZOJ1823][JSOI2010]满汉全席 Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只 ...

  9. 拓扑排序详解(梅开二度之dfs版按字典序输出拓扑路径+dfs版输出全部拓扑路径

    什么是拓扑排序? 先穿袜子再穿鞋,先当孙子再当爷.这就是拓扑排序! 拓扑排序说白了其实不太算是一种排序算法,但又像是一种排序(我是不是说了个废话qwq) 他其实是一个有向无环图(DAG, Direct ...

随机推荐

  1. POJ2559 Largest Rectangle in a Histogram (单调栈

    Largest Rectangle in a Histogram Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26012 ...

  2. __cdecl,__stdcall,__fastcall,__pascal,__thiscall 的区别

    关于函数的调用规则(调用约定),大多数时候是不需要了解的,但是如果需要跨语言的编程,比如VC写的dll要delphi调用,则需要了解. microsoft的vc默认的是__cdecl方式,而windo ...

  3. MySQL中大于等于小于等于的写法

    由于在mybatis框架的xml中<= , >=解析会出现问题,编译报错,所以需要转译 第一种写法: 原符号 < <= > >= & ' " 替换 ...

  4. Idea IntelliJ远程调试教程

    总结 第一步:修改startup.sh 在倒第二行加上export JPDA_ADDRESS=8787 最后一行在start前面加上"   jpda   " 第二步:配置Idea, ...

  5. noip2016 提高组

    T1 玩具谜题 题目传送门 这道题直接模拟就好了哇 233 #include<cstdio> #include<cstring> #include<algorithm&g ...

  6. swift方法 的写法,ui上拖拽的控件到controller里面的方法

    直接点xcode右上角三个按键中间一下,左右拆分为storyboard和controller, 点击button,按ctrl,然后拖拽到controller里面即可生成对应的点击事件在controll ...

  7. Bcrypt介绍

    Bcrypt把算法版本.计算次数和salt都放到hash值里面去了 Stored in the database, a bcrypt "hash" might look somet ...

  8. python3 time、random、hashlib模块

    一.时间模块时间的几种形式:时间戳,结构化时间,字符串时间 import time print(time.time()) # 仅仅是当前时间的时间戳 float print(time.localtim ...

  9. 1.flume概述

    我们的web服务器等等每天会产生大量的日志,我们要把这些日志收集起来,移动到hadoop平台上进行分析. 那么如何移动这些数据呢?一种方法是通过shell cp到hadoop集群上,然后通过hdfs ...

  10. ECharts问题--柱状图和折线图中xAxis.data为空时报错问题解决

    1. 我们在日常的开发中使用Echarts时,不像在学习的过程中是自己在option中的配置项填写图表需要的参数,而是通过ajax请求后台,获取数据后,使用javascript来动态的修改数据,但是有 ...