hdu 1824
也是一道2-sat的入门题;
不过题目描述的不清楚,看了别人的题解才知道题意;
和上面的那题差不多,一个模板;
代码:
#include<cstdio>
#include<stack>
#include<vector>
#include<algorithm>
#include<cstring>
#define maxn 20010
using namespace std; vector<int>ve[maxn];
stack<int>s;
int low[maxn],dfn[maxn],b[maxn],nncount,cnt;
bool instack[maxn]; void tarjin(int u)
{
low[u]=dfn[u]=++nncount;
s.push(u);
instack[u]=;
int l=ve[u].size();
for(int i=;i<l;i++)
{
int v=ve[u][i];
if(!dfn[v])
{
tarjin(v);
low[u]=min(low[u],low[v]);
}
else if(instack[v])
low[u]=min(low[u],dfn[v]);
}
if(low[u]==dfn[u])
{
cnt++;
int v;
do
{
v=s.top();
s.pop();
b[v]=cnt;
instack[v]=;
}while(v!=u);
}
} int main()
{
int n,m,x,y,z,t;
while(scanf("%d%d",&t,&m)!=EOF)
{
n=*t;
for(int i=;i<*n;i++)
ve[i].clear();
memset(low,,sizeof low);
memset(dfn,,sizeof dfn);
memset(b,,sizeof b);
nncount=cnt=;
for(int i=;i<t;i++)
{
scanf("%d%d%d",&x,&y,&z);
ve[x+n].push_back(y);
ve[x+n].push_back(z);
ve[y+n].push_back(x);
ve[z+n].push_back(x);
}
for(int i=;i<m;i++)
{
scanf("%d%d",&x,&y);
ve[x].push_back(y+n);
ve[y].push_back(x+n);
}
bool flag=;
for(int i=;i<*n;i++)
if(!dfn[i]) tarjin(i);
for(int i=;i<n;i++)
if(b[i]==b[i+n]) {flag=;break;}
if(flag) puts("no");
else puts("yes");
}
return ;
}
hdu 1824的更多相关文章
- HDU 3062 && HDU 1824 && POJ 3678 && BZOJ 1997 2-SAT
一条边<u,v>表示u选那么v一定被选. #include <iostream> #include <cstring> #include <cstdio> ...
- HDU 1824 Let's go home(2-SAT+Tarjan)
Let's go home Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- HDU 1824 Let's go home
2-SAT,根据题意建好图,求一下强联通分量,判断一下就可以了 #include<cstdio> #include<cstring> #include<cmath> ...
- 2-sat(tarjan算法)hdu(1824)
hdu1824 Let's go home Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hdu 1824 2-sat问题(判断)
/* 题意:u,v,w队长,队员,队长留下两个队员可以回家,两个队员留下,队长回家 2-sat问题,把两个队员看成一个整体就变成一个简单2-sat问题了 */ #include<stdio.h& ...
- HDU 1824 Let's go home (2-SAT判定)
Let's go home Time Limit: 10000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 图论--2-SAT--HDOJ/HDU 1824 Let's go home
Problem Description 小时候,乡愁是一枚小小的邮票,我在这头,母亲在那头. -- 余光中 集训是辛苦的,道路是坎坷的,休息还是必须的. ...
- 【图论】2-sat总结
2-sat总结 2-sat问题,一般表现的形式为.每一个点有两种方式a,b,要么选a,要么选b.而且点点之间有一些约束关系.比如:u和v至少一个选a.那么这就是一个表达式.把a当成真,b当成假,那就是 ...
- hdu 3062+1824(2-sat入门)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3062 思路:根据矛盾关系连边(如果a与b矛盾,则连边a'->b,b'->a),然后强连通缩 ...
随机推荐
- C++ STL (备忘)
2014-08-04 16:33:57 (1) map map定义形式 map<type1,type2> map_name; map的基本操作函数: C++ Maps是一种关 ...
- 跨时钟域设计【一】——Slow to fast clock domain
跨时钟域设计是FPGA设计中经常遇到的问题,特别是对Trigger信号进行同步设计,往往需要把慢时钟域的Trigger信号同步到快时钟域下,下面是我工作中用到的慢时钟域到快时钟域的Verilog HD ...
- (转)CSS行高——line-height
原文地址:http://www.cnblogs.com/dolphinX/p/3236686.html 初入前端的时候觉得CSS知道display.position.float就可以在布局上游刃有余了 ...
- java与.net平台之间进行RSA加密验证
RSA加密算法虽然不分平台,标准都是一样的,但是各个平台的实现方式都不尽相同,下面来我来说说java与.net平台之间该如何进行RSA加密验证,即java端加密->.net端验证和.net端加密 ...
- html-01
1.HTML:超文本标记语言,由浏览器解析成页面.html文件是以.html或者 .htm 2.HTML的作用 |- 控制页面的外观. |- 发布帮助文档 3.常见的浏览器 |-IE:微 ...
- js表格的输出
<html> <head> <title>隔行变色</title> <script type="text/javascript" ...
- 万网免费主机wordpress快速建站教程-wordpress下载及安装
进入wordpress官网(http://cn.wordpress.org)下载最新的wordpress安装程序,下载完成后解压到任意电脑目录. 解压完毕后,使用FTP管理工具上传安装文件至主机htd ...
- java中split以"."分割的问题
今天开发中使用字符串分割函数split(),发现:输出的并不是想要的结果 或者直接报错都有可能 查询后才发现,需要转译 原来在java中函数split(".")必须是是split( ...
- IOS_OC_本地推送知识总结
知识点介绍 一. 推送通知介绍(了解) 二. 本地推送通知 本地通知的基本使用 本地通知的不常用属性 删除重复的通知 通知的处理1-跳转界面 通知的处理2-程序退出 分类的设置/快捷回复 一. 推送通 ...
- Java工具类:获取long型唯一ID
直接上代码: import java.text.SimpleDateFormat; import java.util.Date; /** * 获取long型唯一ID */ public class I ...