[BZOJ1823][JSOI2010]满汉全席 做题笔记
来源:互联网 发布:js blob uint8array 编辑:程序博客网 时间:2024/04/27 17:55
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1823
我做的第一道2-SAT裸题。不得不说题目描述看起来比NOI2002银河英雄传说都可怕。。。注意图是有向的。
#include <cstdio>#include <cstring>#include <algorithm>#include <stack>using namespace std;const int N=2005,M=20005,inf=0x3fffffff;int head[N],ver[M<<1],next[M<<1];int dfn[N],low[N],bel[N],q[N<<1],m,n,scc;bool inq[N];int tot=1,t=0,T,top=0;void add (int u,int v) { ver[++tot]=v;next[tot]=head[u];head[u]=tot;}inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f;}int get () { int x; char c=getchar(); while (c!='m'&&c!='h') c=getchar(); if (c=='m') x=read()*2; else x=read()*2+1; return x;}void Tarjan (int x) { dfn[x]=low[x]=++t; q[++top]=x;inq[x]=1; for (int i=head[x];i;i=next[i]) if (!dfn[ver[i]]) { Tarjan(ver[i]); low[x]=min(low[x],low[ver[i]]); } else if (inq[ver[i]]) low[x]=min(low[x],dfn[ver[i]]); if (low[x]==dfn[x]) { scc++; int now=0; while (now!=x) { now=q[top--]; bel[now]=scc; inq[now]=0; } }}int main () { T=read(); while (T--) { memset(head,0,sizeof(head)); memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); memset(bel,0,sizeof(bel)); memset(inq,0,sizeof(inq)); tot=1,t=m=n=scc=top=0; n=read(); m=read(); int x,y,xp,yp; for (int i=1;i<=m;i++) { x=get(); y=get(); xp=x^1;yp=y^1; add(xp,y);add(yp,x); } bool flag=0; for (int i=2;i<=2*n+1;i++) if (!dfn[i]) Tarjan(i); for (int i=1;i<=n;i++) if (bel[2*i]==bel[2*i+1]) { puts("BAD");flag=1;break; } if (!flag) puts("GOOD"); } return 0;}
0 0
- [BZOJ1823][JSOI2010]满汉全席 做题笔记
- bzoj1823: [JSOI2010]满汉全席
- BZOJ1823: [JSOI2010]满汉全席
- BZOJ1823 [JSOI2010]满汉全席
- [BZOJ1823][JSOI2010]满汉全席 && 2-sat
- 【bzoj1823】【jsoi2010】【满汉全席】【2-sat】
- Bzoj1823:[JSOI2010]满汉全席:2-sat
- 【bzoj1823】[JSOI2010]满汉全席 2-sat
- 【bzoj1823】[JSOI2010]满汉全席 2-SAT
- [bzoj1823][JSOI2010]满汉全席 2-sat
- bzoj1823[JSOI2010]满汉全席 2-SAT
- [2-SAT] [BZOJ1823] [JSOI2010]满汉全席
- BZOJ1823: [JSOI2010]满汉全席 2-sat
- bzoj1823 JSOI2010 满汉全席 2-SAT 经典建模
- bzoj1823 [JSOI2010]满汉全席(2-SAT)
- [BZOJ1823][JSOI2010]满汉全席(2-SAT)
- [BZOJ1823][JSOI2010]满汉全席(2-SAT)
- 【BZOJ 1823】 [JSOI2010]满汉全席
- Vulkan资料搜集--链接,更新
- eclipse导入项目不显示svn信息
- IOS 成员变量,全局变量,局部变量定义,static与extern的区别
- ASP.NET MVC ValidationAttribute 服务器端自定义验证
- Pro Git中文版——Git 工具
- [BZOJ1823][JSOI2010]满汉全席 做题笔记
- YTU 1068: 复制字符串
- 仿微信字母快速查找联系人界面
- [GDOI模拟2016.03.05]魔道研究
- Pro Git——自定义 Git
- NSNotificationCenter消息通信机制介绍(KVO)
- Java EE 工程师系列 之 从前端到后台【最佳实践】
- 前台访问接口时无法访问以及访问出错的原因(一点一点加)
- Nginx:设置Nginx作为缓存