BZOJ1823:[JSOI2010]满汉全席——题解

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/283270.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读两本敦煌书杂记-敦煌由盛转衰(二)

公元420-589年&#xff0c;中国分为南北两个部分&#xff08;史称魏晋南北朝&#xff0c;由西晋末年八王之乱引起&#xff0c;北方游牧少数民族趁机侵扰中原&#xff0c;并先后建立多个少数民族政权&#xff0c;又称“五胡乱华”。“五胡”主要指匈奴、鲜卑、羯、羌、氐五个胡人…

codevs1079 回家

题目描述 Description现在是晚餐时间,而母牛们在外面分散的牧场中。 农民约翰按响了电铃,所以她们开始向谷仓走去。 你的工作是要指出哪只母牛会最先到达谷仓(在给出的测试数据中,总会有且只有一只最快的母牛)。 在挤奶的时候(晚餐前),每只母牛都在她自己的牧场上,一些牧场上可…

什么是xmlschema

XML Schema定义&#xff08;XML Schema Definition,XSD&#xff09;是一套W3C标准,用于基于XML的称为XML Schema的类型系统.用于定义的语言是一种称为XML模式定义语言&#xff08;XML Schema Definition Language&#xff09;的XML语法.Web 服务使用XML作为表示消息和数据的底层…

第三方app_为什么第三方APP不能下载呢?

这些年科学技术发展日新月异&#xff0c;信息技术和网络技术也层出不穷&#xff0c;大众出行工具的汽车电器化集成度越来越高&#xff0c;汽车上娱乐主机的智能化和网络化程度也越来越高&#xff0c;汽车娱乐主机也成了人民除手机外的第二个娱乐工具&#xff0c;用惯了手机娱乐…

如何管理跨部门的沟通与协作?

俗话说“磨刀不误砍柴工”&#xff0c;选对方法&#xff0c;再复杂的事也能事半功倍。在新营销时代&#xff0c;效率为王&#xff0c;而高效率的背后&#xff0c;则是给力的技术工具与合理的工作方式。 企业级服务的兴起&#xff0c;让人们看到了信息化技术的潜力&#xff0c;从…

启动Jupyter Notebook时出现Kernel error错误的解决方法

启动Jupyter Notebook时出现Kernel error错误的解决方法 方法如下&#xff1b; 1、打开Anaconda Prompt&#xff0c;然后输入jupyter kernelspec list,查看一下 2、打开anaconda的安装目录找到E:\Anaconda3\anaconda3\share\jupyter\kernels\python3下面的kernel.json&#x…

WPF效果第一百九十七篇之Path范围内拖拽

前面效果中分享了彩色马蹄图的效果;这不今天再次在马蹄图的基础上,实现只能在Path内的拖拽效果;闲话不多扯直接看效果:1、关于拖拽顶点实现色域范围选择,参考:https://www.codeproject.com/Tips/828310/The-simplest-WPF-diagram-designer-part2、通过Blend绘制了色度图中间区域…

Ubuntu16.04 + caffe-ssd + [CPU_ONLY] + KITTI 训练总结

本次训练主要参考&#xff1a;http://blog.csdn.net/jesse_mx/article/details/65634482 感谢 Jesse_Mx &#xff0c;帮助了我很多。 坑一【openCV未安装成功】&#xff1a; openCV未安装成功会导致各种莫名的问题&#xff0c;比如&#xff1a;“No module named cv2”问题。 然…

PHP面向对象常见的关键字和魔术方法

在PHP5的面向对象程序设计中提供了一些常见的关键字&#xff0c;用来修饰类、成员属性或成员方法&#xff0c;使他们具有特定的功能&#xff0c;例如final、static、const等关键字。还有一些比较实用的魔术方法&#xff0c;用来提高类或对象的应用能力&#xff0c;例如__call()…

python中字典长度可变吗_Python:如何给字典分配一个长度可变的列表值?

我试图在100个2D numpy数组中定位质心&#xff0c;如下所示&#xff1a;array([[ 0.216, 0.24 , 0.244, ..., 0.679, 0.684, 0.707],[ 0.23 , 0.229, 0.238, ..., 0.675, 0.676, 0.695],[ 0.221, 0.238, 0.24 , ..., 0.669, 0.677, 0.684],...,[ 0.937, 0.925, 0.923, ..., 0.7…

如何在论文中自动生成标准的参考文献格式

首先下载EndNote软件&#xff0c;word中会自动显示EndNote选项 选择EndNote 选择导出会下载一个txt文件 打开EndNote中向下的箭头导入&#xff08;从文件导入文献到库中&#xff09;找到刚才下载的txt文件 点击选择按键找到txt文件 选择打开即可 选择导入 选择导入的内容…

PrincetonAlgorithm I - Assignment2 Deques and Randomized Queues

Programming Assignment2 - Deque and Randomized Queues Review Assignment Specification 课程笔记 Subtext: Modular Programming Stacks and Queues are fundamental data types Value: collection of objectsBasic Operation: insert, remove, iterate.Difference: which …

【Android Studio】查看源码时提示“throw new RuntimeException(Stub!)”

如题…… 详细问题及解决方法&#xff1a;http://blog.csdn.net/u010917495/article/details/51234179 转载于:https://www.cnblogs.com/jaxer/p/7071431.html

TCP短连接产生大量TIME_WAIT导致无法对外建立新TCP连接的原因及解决方法—基础知识篇...

最近遇到一个线上报警&#xff1a;服务器出现大量TIME_WAIT导致其无法与下游模块建立新HTTP连接&#xff0c;在解决过程中&#xff0c;通过查阅经典教材和技术文章&#xff0c;加深了对TCP网络问题的理解。作为笔记&#xff0c;记录于此。 备注&#xff1a;本文主要介绍…

如何在Jupyter Notebook中使用Python虚拟环境

1、创建虚拟环境&#xff1a; condacreate-n 环境名 python版本号 例如创建一个叫做dl的虚拟环境,python版本为3.7&#xff1a; conda create -n dl python3.7 2、激活虚拟环境&#xff1a; conda activate 环境名 3、在虚拟环境中安装ipykernel (切记这一步是在对应的虚…

python分离文件名和路径_python 分离文件名和路径以及分离文件名和后缀的方法...

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云文件存储NAS是一个可共享访问&#xf…

JS基础入门篇( 一 )

1.JS存放在代码中的位置 1.JS写在行间 <div style"background-color: red;" onclick"alert(1)" >hello world</div> 优点&#xff1a;直接&#xff0c;简单 缺点&#xff1a;不方便复用和维护,不符合结构行为分离规范2.JS写在script ( 一般写在…

开源许可证,欢迎来到云时代

出品 | OSC开源社区&#xff08;ID&#xff1a;oschina2013)作者 | 唐建法前言开源许可证从最早的 GPL 开始&#xff0c; 逐渐演进到 GPLv2 和 v3&#xff0c;中间还有 Apache、MPL、AGPL、LGPL 等&#xff0c;但是近几年来有一批新的许可证的出现&#xff0c;引起了社区的一些…

15_新闻客户端_展示文字内容完成

1232131转载于:https://www.cnblogs.com/ZHONGZHENHUA/p/7074670.html

python socket传输图片_python使用socket传输图片视频等文件的实现方式

python使用socket传输图片视频等文件的实现方式来源&#xff1a;中文源码网 浏览&#xff1a; 次 日期&#xff1a;2019年11月5日【下载文档: python使用socket传输图片视频等文件的实现方式.txt 】(友情提示:右键点上行txt文档名->目标另存为)python 使用socket传输…