标题效果:有着n材料的种类,m陪审团。

每种材料具有两种不同的方法。每个法官都有两个标准。做出来的每一个法官的菜必须至少满足一个需求。

问:是否有这样一个程序。

思考:2-SAT经典的内置图形问题。因为每种材料只能有两种方法,约束条件通常就想到2-SAT。每个评委必须至少满足一种。这就是建图的条件。

所以连边A‘ -> B

B’ -> A

这样表示的是假设A不能满足某个评委,那么就必须让b满足这个评委。

然后就是Tarjan缩点,推断是否有个菜品的两种做法在一个scc中,若有就是无解,没有就是有解。

CDOE:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MAX 5010
using namespace std; int cases;
int points,cnt; int head[MAX],_total;
int _next[MAX],aim[MAX]; int dfn[MAX],low[MAX],total;
int stack[MAX],top;
bool in_stack[MAX];
int changed[MAX],scc; char c1,c2; inline void Initialize();
inline void Add(int x,int y);
void Tarjan(int x); int main()
{
for(cin >> cases;cases; --cases) {
scanf("%d%d",&points,&cnt);
Initialize();
for(int x,y,i = 1;i <= cnt; ++i) {
getchar();
scanf("%c%d %c%d",&c1,&x,&c2,&y);
x = (x << 1) + (c1 == 'h');
y = (y << 1) + (c2 == 'h');
Add(x^1,y);
Add(y^1,x);
}
for(int i = 2;i <= (points << 1|1); ++i)
if(!dfn[i]) Tarjan(i);
bool flag = true;
for(int i = 1;i <= points; ++i)
if(changed[i << 1] == changed[i << 1|1])
flag = false;
if(flag) puts("GOOD");
else puts("BAD");
}
return 0;
} inline void Initialize()
{
total = _total = top = scc =0;
memset(dfn,0,sizeof(dfn));
memset(head,0,sizeof(head));
memset(in_stack,false,sizeof(in_stack));
} inline void Add(int x,int y)
{
_next[++_total] = head[x];
aim[_total] = y;
head[x] = _total;
} void Tarjan(int x)
{
dfn[x] = low[x] = ++total;
stack[++top] = x;
in_stack[x] = true;
for(int i = head[x];i;i = _next[i]) {
if(!dfn[aim[i]])
Tarjan(aim[i]),low[x] = min(low[x],low[aim[i]]);
else if(in_stack[aim[i]])
low[x] = min(low[x],dfn[aim[i]]);
}
if(low[x] == dfn[x]) {
scc++;
int temp;
do {
temp = stack[top--];
changed[temp] = scc;
in_stack[temp] = false;
}while(temp != x);
}
}

版权声明:本文博主原创文章,博客,未经同意不得转载。

BZOJ 1823 JSOI 2010 盛宴 2-SAT的更多相关文章

  1. [BZOJ 1032][JSOI 2007]祖玛 题解(区间DP)

    [BZOJ 1032][JSOI 2007]祖玛 Description https://www.lydsy.com/JudgeOnline/problem.php?id=1032 Solution ...

  2. [BZOJ 1013][JSOI 2008] 球形空间产生器sphere 题解(高斯消元)

    [BZOJ 1013][JSOI 2008] 球形空间产生器sphere Description 有一个球形空间产生器能够在n维空间中产生一个坚硬的球体.现在,你被困在了这个n维球体中,你只知道球 面 ...

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

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

  4. [BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆)

    [BZOJ 2006] [NOI 2010]超级钢琴(贪心+ST表+堆) 题面 给出一个长度为n的序列,选k段长度在L到R之间的区间,一个区间的值等于区间内所有元素之的和,使得k个区间的值之和最大.区 ...

  5. BZOJ 1823 满汉全席

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

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

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

  7. bzoj 1818 [CQOI 2010] 内部白点 - 扫描线 - 树状数组

    题目传送门 快速的列车 慢速的列车 题目大意 一个无限大的方格图内有$n$个黑点.问有多少个位置上下左右至少有一个黑点或本来是黑点. 扫描线是显然的. 考虑一下横着的线段,取它两个端点,横坐标小的地方 ...

  8. 2-sat基础题 BZOJ 1823

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

  9. BZOJ 1016 JSOI 2008 最小生成树计数 Kruskal+搜索

    题目大意:给出一些边,求出一共能形成多少个最小生成树. 思路:最小生成树有非常多定理啊,我也不是非常明确.这里仅仅简单讲讲做法.关于定各种定理请看这里:http://blog.csdn.net/wyf ...

随机推荐

  1. POJ 2240 Arbitrage(最短路 套汇)

    题意  给你n种币种之间的汇率关系  推断是否能形成套汇现象  即某币种多次换为其他币种再换回来结果比原来多 基础的最短路  仅仅是加号换为了乘号 #include<cstdio> #in ...

  2. drools6 基本使用 -- 2

    续drools6 基本使用1 http://blog.csdn.net/cloud_ll/article/details/26979355 8. 创建src/main/test folder.把dro ...

  3. 21个js 技巧收藏

    1  Javascript数组转换为CSV格式 首先考虑如下的应用场景,有一个Javscript的字符型(或者数值型)数组,现在需要转换为以逗号分割的CSV格式文件.则我们可以使用如下的小技巧,代码如 ...

  4. MongoDB时间处理问题

    MongoDB保存到数据库的时候,默认为UTC时间,在数据库保存时,会和当前时间有个间隔,差距为8小时. 在读取的时候,需要再次转换回来,比较麻烦. 其实,Mongo本身就已经提供了相应的处理方法,即 ...

  5. HR筒子说:程序猿面试那点事

    小屁孩曾经有过4年的招聘经验,期间见识了各种类型的程序猿:有大牛.有菜牛:有功成名就,有苦苦挣扎不知方向.等后来做了一枚程序猿之后发现,HR眼中的程序猿和程序猿中的HR都是不一样的.有感与此,从HR的 ...

  6. 【C语言探索之旅】 第一部分第四课第一章:变量的世界之内存那档事

    内容简介 1.课程大纲 2.第一部分第四课第一章:变量的世界之内存那档事 3.第一部分第四课第二章预告:变量的世界之声明变量 课程大纲 我们的课程分为四大部分,每一个部分结束后都会有练习题,并会公布答 ...

  7. Web API 数据流使用

    ASP.NET Web API 应用教程(一) ——数据流使用   相信已经有很多文章来介绍ASP.Net Web API 技术,本系列文章主要介绍如何使用数据流,HTTPS,以及可扩展的Web AP ...

  8. Intel® Ethernet Connection I217-V 网卡驱动(win10 ,2012)

    https://downloadcenter.intel.com/zh-cn/download/25016/-Windows-10 上面是win10 的驱动 win8.1  https://downl ...

  9. ios说说自己的计划是什么样的发展论坛

    ios发展论坛在显示 iOS 5 在,主界面包含以下内置的应用程序: 信息.日历.照片.      YouTube.股市.地图(AGPS辅助的Google地图).天气.时间.计算机.备忘录.系统设置. ...

  10. CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全) (转)

    JDBC事务管理 Spring提供编程式的事务管理(Programmatic transaction manage- ment)与声明式的事务管理(Declarative transaction ma ...