POJ 3678
这道题唯一一个注意的地方是,如出现X\/Y=0这种关系时,X=0,Y=0。已经是可以肯定的关系了,所以可以连边X->-X。
我也错了上面这地方。看来,还不够。以后要细心才好。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string.h>
#include <algorithm>
#include <cmath> using namespace std; const int MAXN=;
const int MAXM=;
int n,m;
char s[];
int head[MAXN],dfn[MAXN],low[MAXN],st[MAXN],tot,stop,indx,pat,belong[MAXN];
bool stack[MAXN]; struct{
int u,v;
int next;
}edge[MAXM]; void addedge(int u,int v){
edge[tot].u=u;
edge[tot].v=v;
edge[tot].next=head[u];
head[u]=tot++;
} void tarjan(int u){
int v;
dfn[u]=low[u]=++indx;
st[stop++]=u;
stack[u]=true;
for(int e=head[u];e!=-;e=edge[e].next){
v=edge[e].v;
if(dfn[v]==){
tarjan(v);
low[u]=min(low[u],low[v]);
}
else if(stack[v]){
low[u]=min(low[u],dfn[v]);
}
}
if(dfn[u]==low[u]){
pat++;
do{
v=st[--stop];
belong[v]=pat;
stack[v]=false;
}while(u!=v);
}
} int main(){
int u,v,c;
while(scanf("%d%d",&n,&m)!=EOF){ memset(head,-,sizeof(head));
tot=stop=indx=pat=;
memset(dfn,,sizeof(dfn));
memset(low,,sizeof(low));
memset(stack,false,sizeof(stack));
memset(belong,,sizeof(belong)); for(int i=;i<m;i++){
scanf("%d%d%d%s",&u,&v,&c,s);
if(strcmp(s,"OR")==){
if(c==){
addedge(*u,*u+);
addedge(*v,*v+);
}
else{
addedge(*u+,*v);
addedge(*v+,*u);
}
}
else if(strcmp(s,"AND")==){
if(c==){
addedge(*u,*v+);
addedge(*v,*u+);
}
else {
addedge(*u+,*u);
addedge(*v+,*v);
}
}
else{
if(c==){
addedge(*u,*v);
addedge(*v,*u);
addedge(*u+,*v+);
addedge(*v+,*u+);
}
else{
addedge(*u,*v+);
addedge(*u+,*v);
addedge(*v,*u+);
addedge(*v+,*u);
}
}
}
for(int i=;i<*n;i++){
if(dfn[i]==){
tarjan(i);
}
} bool flag=true;
for(int i=;i<n;i++){
if(belong[i*]==belong[*i+]){
printf("NO\n");
flag=false;
break;
}
}
if(flag)
printf("YES\n");
}
return ;
}
POJ 3678的更多相关文章
- HDU 3062 && HDU 1824 && POJ 3678 && BZOJ 1997 2-SAT
一条边<u,v>表示u选那么v一定被选. #include <iostream> #include <cstring> #include <cstdio> ...
- POJ 3678 Katu Puzzle(2-SAT,合取范式大集合)
Katu Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 9987 Accepted: 3741 Descr ...
- poj 3678 Katu Puzzle(Two Sat)
题目链接:http://poj.org/problem?id=3678 代码: #include<cstdio> #include<cstring> #include<i ...
- POJ 3678 Katu Puzzle 2-SAT 强连通分量 tarjan
http://poj.org/problem?id=3678 给m条连接两个点的边,每条边有一个权值0或1,有一个运算方式and.or或xor,要求和这条边相连的两个点经过边上的运算后的结果是边的权值 ...
- 基础但是很重要的2-sat POJ 3678
http://poj.org/problem?id=3678 题目大意:就是给你n个点,m条边,每个点都可以取值为0或者1,边上都会有一个符号op(op=xor or and三种)和一个权值c.然后问 ...
- poj 3678 Katu Puzzle(2-sat)
Description Katu Puzzle ≤ c ≤ ). One Katu ≤ Xi ≤ ) such that for each edge e(a, b) labeled by op and ...
- poj 3678(SCC+2-SAT)
传送门:Problem 3678 https://www.cnblogs.com/violet-acmer/p/9769406.html 难点: 题意理解+构图 题意: 有n个点 v[0,2..... ...
- POJ 3678 Katu Puzzle (经典2-Sat)
Katu Puzzle Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6553 Accepted: 2401 Descr ...
- POJ 3678 Katu Puzzle
Description 给出一个关系,包括 And,Xor,Or 问是否存在解. Sol 经典的2-SAT问题. 把每个值看成两个点,一个点代表选 \(0\) ,另一个代表选 \(1\) . 首先来看 ...
- POJ 3678 Katu Puzzle(强连通 法)
题目链接 题意:给出a, b, c 和操作类型 (与或异或),问是否满足所有的式子 主要是建图: 对于 and , c == 1: 说明 a 和 b都是1,那么 0 就不能取, a' -> a ...
随机推荐
- 此文章介绍vue-cli脚手架config目录下index.js配置文件
此配置文件是用来定义开发环境和生产环境中所需要的参数 关于注释 当涉及到较复杂的解释我将通过标识的方式(如(1))将解释写到单独的注释模块,请自行查看 上代码 // see http://vuejs- ...
- bzoj2822[AHOI2012]树屋阶梯(卡特兰数)
2822: [AHOI2012]树屋阶梯 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 879 Solved: 513[Submit][Status] ...
- B - Link/Cut Tree
Problem description Programmer Rostislav got seriously interested in the Link/Cut Tree data structur ...
- # --with-http_sub_module模块
作用: http内容替换 语法 第一种语法: sub_filter string:要替换的内容 替换后的内容 这个模块只能替换第一个匹配的字符串,如果需要匹配全部替换,则用到下面的第三种语法配置 第二 ...
- Bootstrap栅格系统&媒体查询
bootstrap中几乎所有元素的盒子模型为IE下的盒模型,通俗点说就是box-sizing设置成了:border-box. 栅格系统 媒体查询 媒体查询是非常别致的"有条件的 CSS ...
- 【sqli-labs】 less36 GET- Bypass MYSQL_real_escape_string (GET型绕过MYSQL_real_escape_string的注入)
看一下mysql_real_escape_string()函数 \x00 \x1a 注入的关键还是在于闭合引号,同样使用宽字节注入 http://192.168.136.128/sqli-labs-m ...
- EF test
LibraryEntities db = new LibraryEntities(); private void btnSelect_Click(object sender, EventArgs e) ...
- 移动端mui常用方法
本文分享一些用Mui的时候所采的坑 1.mui中上拉刷新事件a标签中的链接.元素onclick事件在手机上点击不了 mui('body').on('tap','a',function(){docume ...
- this、super关键字以及他们各自的作用
this:代表当前对象的引用,谁来调用我,我就代表谁 super:代表当前对象父类的引用 this和super的使用区别 A:调用成员变量 this.成员变量 调用本类的成员变量,也可以调用父类的成 ...
- The remote certificate is invalid according to the validation procedure 远程证书验证无效
The remote certificate is invalid according to the validation procedure 根据验证过程中远程证书无效 I'm calling ...