[2-SAT] [BZOJ1823] [JSOI2010]满汉全席
来源:互联网 发布:mac os x 10.11黑苹果 编辑:程序博客网 时间:2024/04/27 16:05
[(http://www.lydsy.com/JudgeOnline/problem.php?id=1823)]
比较简单的2-SAT QwQ
0 1分别表示用汉式还是满式 根据评委条件连边就行了
#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int MaxN=205;const int MaxM=100005;int K,N,M,Cnt,EdgeCnt;int A[1005],B[1005];int Tot,Head[MaxN],Next[MaxM],To[MaxM];int Index,DFN[MaxN],Low[MaxN];int Top,Stack[MaxN],ID[MaxN];bool Vis[MaxN];struct Edge{ int u,v;}E[MaxM];void Add_Edge(int u,int v){ E[++EdgeCnt]=(Edge){u,v}; Next[++Tot]=Head[u]; To[Tot]=v; Head[u]=Tot;}int Another(int x){ return (x%2?x+1:x-1);}void Init(){ int i,j,a,b; char c1,c2; scanf("%d%d",&N,&M); for(i=1;i<=M;i++){ scanf("\n%c%d %c%d",&c1,&a,&c2,&b); A[i]=a*2-(c1=='h'); B[i]=b*2-(c2=='h'); } Tot=EdgeCnt=Cnt=0; memset(Head,0,sizeof(Head)); for(i=1;i<=N*2;i++) for(j=1;j<=M;j++){ if(A[j]==Another(i)) Add_Edge(i,B[j]); if(B[j]==Another(i)) Add_Edge(i,A[j]); }}void DFS(int u){ int i,v,tmp; DFN[u]=Low[u]=++Index; Vis[Stack[++Top]=u]=true; for(i=Head[u];i;i=Next[i]) if(!DFN[v=To[i]]){ DFS(v); Low[u]=min(Low[u],Low[v]); } else if(Vis[v]) Low[u]=min(Low[u],DFN[v]); if(DFN[u]==Low[u]){ Cnt++; do{ tmp=Stack[Top--]; ID[tmp]=Cnt; Vis[tmp]=false; }while(tmp!=u); }}void Work(){ int i; Index=Top=0; memset(DFN,0,sizeof(DFN)); memset(Low,0,sizeof(Low)); for(i=1;i<=N*2;i++) if(!DFN[i]) DFS(i); for(i=1;i<=N*2;i+=2) if(ID[i]==ID[i+1]){ puts("BAD"); return; } puts("GOOD");}int main(){ scanf("%d",&K); while(K--){ Init(); Work(); } return 0;}
阅读全文
0 0
- [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)
- bzoj1823: [JSOI2010]满汉全席
- BZOJ1823: [JSOI2010]满汉全席
- BZOJ1823 [JSOI2010]满汉全席
- 1823: [JSOI2010]满汉全席 2-SAT
- bzoj 1823: [JSOI2010]满汉全席 2-SAT判定
- 执行mvn 报错 source-1.5 中不支持 diamond运算符
- 解析xml的几种方法
- STL中set用法详解
- Java学习笔记(混乱)
- UVA10200 Prime Time【素数判定】
- [2-SAT] [BZOJ1823] [JSOI2010]满汉全席
- 工业物联网无线HART,HOST程序分析
- vector用法
- MongoDB索引
- 拿到阿里云服务器后的基本安全配置
- 初学 Java web(一)JavaBean 的使用实例
- 实现多行文本溢出显示省略号
- 线程
- 虚拟ip+keeplalived+nginx 负载实现