BZOJ_1823_[JSOI2010]满汉全席_2-sat+tarjan
BZOJ_1823_[JSOI2010]满汉全席_2-sat
题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1823
分析:一道比较容易看出来的2-sat。
设满为1,汉为0;
题目要求两个至少满足一个。那么建图同奶牛议会http://www.cnblogs.com/suika/p/8457467.html。
之后求一遍强连通分量。
如果同一个点的true和false在一个强连通分量中就不可能满足。
代码:
- #include <stdio.h>
- #include <string.h>
- #include <algorithm>
- using namespace std;
- #define N 250
- #define M 4500
- int head[N],to[M],nxt[M],cnt,n,m,ins[N];
- char s1[20],s2[20];
- int tot,dfn[N],low[N],st[N],top,bel[N],scc;
- inline void add(int u,int v){
- to[++cnt]=v;nxt[cnt]=head[u];head[u]=cnt;
- }
- void tarjan(int x){
- dfn[x]=low[x]=++tot;
- st[top++]=x;ins[x]=1;
- for(int i=head[x];i;i=nxt[i]){
- if(!dfn[to[i]]){
- tarjan(to[i]);
- low[x]=min(low[x],low[to[i]]);
- }else if(ins[to[i]]){
- low[x]=min(low[x],dfn[to[i]]);
- }
- }
- if(low[x]==dfn[x]){
- int t=st[--top];ins[t]=0;
- bel[t]=++scc;
- while(t^x){
- t=st[--top];ins[t]=0;
- bel[t]=scc;
- }
- }
- }
- int main(){
- int T;
- scanf("%d",&T);
- while(T--){
- memset(head,0,sizeof(head));cnt=0;tot=0;scc=0;
- memset(dfn,0,sizeof(dfn));
- memset(low,0,sizeof(low));
- scanf("%d%d",&n,&m);
- int x,y,tx,ty;
- for(int i=1;i<=m;i++){
- scanf("%s%s",s1,s2);
- if(s1[0]=='m')tx=1;else tx=0;
- if(s2[0]=='m')ty=1;else ty=0;
- sscanf(s1+1,"%d",&x);
- sscanf(s2+1,"%d",&y);
- add((1-tx)*n+x,ty*n+y);
- add((1-ty)*n+y,tx*n+x);
- }
- int flg=0;
- for(int i=1;i<=n+n;i++)if(!dfn[i])tarjan(i);
- for(int i=1;i<=n;i++){
- if(bel[i]==bel[i+n]){
- flg=1;break;
- }
- }
- puts(flg?"BAD":"GOOD");
- }
- }
BZOJ_1823_[JSOI2010]满汉全席_2-sat+tarjan的更多相关文章
- 洛谷P4171 [JSOI2010] 满汉全席 [2-SAT,Tarjan]
题目传送门 满汉全席 题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉 ...
- bzoj 1823: [JSOI2010]满汉全席【2-SAT+tarjan】
因为每种食材只有一份,所以两个评委的如果有要求同一种食材的两种做法就是不可行,用这个来建立2-SAT模型 然后跑tarjan判可行性即可 #include<iostream> #inclu ...
- BZOJ 1823: [JSOI2010]满汉全席( 2-sat )
2-sat...假如一个评委喜好的2样中..其中一样没做, 那另一样就一定要做, 这样去建图..然后跑tarjan. 时间复杂度O((n+m)*K) ------------------------- ...
- 【BZOJ1823】[JSOI2010]满汉全席(2-sat)
[BZOJ1823][JSOI2010]满汉全席(2-sat) 题面 BZOJ 洛谷 题解 很明显的\(2-sat\)模板题,还不需要输出方案. 对于任意两组限制之间,检查有无同一种石材要用两种不同的 ...
- 【BZOJ1823】[JSOI2010]满汉全席 2-SAT
[BZOJ1823][JSOI2010]满汉全席 Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只 ...
- 洛谷 P4171 [JSOI2010]满汉全席 解题报告
P4171 [JSOI2010]满汉全席 题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高 ...
- bzoj1823 [JSOI2010]满汉全席(2-SAT)
1823: [JSOI2010]满汉全席 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1246 Solved: 598[Submit][Status ...
- BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点
题目描述 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的材料透过满族或是汉族的料理方式,呈现在數量繁多的菜色之中.由于菜色众多而繁杂,只有极少數博学多闻技艺高超的厨师能够做出满汉全席,而能够烹饪出经过 ...
- Bzoj1823 [JSOI2010]满汉全席
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1640 Solved: 798 Description 满汉全席是中国最丰盛的宴客菜肴,有许多种不同的 ...
随机推荐
- windows SSH Tunnel实施日记
1.准备条件:SSH跳板服务器一个.软件:Putty,CCProxy 2.putty建立SSH Tunnel:先在session那儿把服务器地址填好,到Tunnel界面上,选Dynamics和Auto ...
- Lintcode397 Longest Increasing Continuous Subsequence solution 题解
[题目描述] Give an integer array,find the longest increasing continuous subsequence in this array. An in ...
- es6(五):class关键字(extends,super,static)
ES5中,生成对象通过构造函数: function A(name,age){ this.name=name; this.age=age } // 在A的prototype属性上定义一个test方法,即 ...
- remove duplicate of the sorted array
description: Given a sorted array, remove the duplicates in place such that each element appear only ...
- 基于opencv下对视频的灰度变换,高斯滤波,canny边缘检测处理,同窗体显示并保存
如题:使用opencv打开摄像头或视频文件,实时显示原始视频,将视频每一帧依次做灰度转换.高斯滤波.canny边缘检测处理(原始视频和这3个中间步骤处理结果分别在一个窗口显示),最后将边缘检测结果保存 ...
- 异步任务spring @Async注解源码解析
1.引子 开启异步任务使用方法: 1).方法上加@Async注解 2).启动类或者配置类上@EnableAsync 2.源码解析 虽然spring5已经出来了,但是我们还是使用的spring4,本文就 ...
- Centos6离线安装MySQL5.5.55-1(附带安装包及Perl依赖包)
资源包下载https://pan.baidu.com/s/1U3myYp4GSmDUfZocMWI9FA 密码:xdac 资源包所带有的资源截图 1.上传MySQL-client-5.5.55-1.l ...
- CSS中的变形、过渡、动画效果
一.变形 .过渡效果 1:元素平移 x方向 y方向 transform:translate(100px 100px); 2:过渡动画效果 a:什么属性参与过渡效果 b:过渡时间 c:过渡的效果 值包含 ...
- spring cloud 入门系列七:基于Git存储的分布式配置中心
我们前面接触到的spring cloud组件都是基于Netflix的组件进行实现的,这次我们来看下spring cloud 团队自己创建的一个全新项目:Spring Cloud Config.它用来为 ...
- SQL语句的CRUD
一.基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...