bzoj1823(2 sat)
来源:互联网 发布:跳跃网络被告 编辑:程序博客网 时间:2024/06/06 01:20
the first 2 sat
#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#include<cmath>#include<stack>using namespace std;const int N=205;int n,m;int head[N],to[N*N],pre[N*N],tot;void addedge(int u,int v) {to[++tot]=v;pre[tot]=head[u];head[u]=tot;}int num(char *ch){int len=strlen(ch),ans=0;for (int i=1;i<len;i++) ans=ans*10+ch[i]-'0';return ans;}int rev(int num){if (num>n) return num-n;return num+n;}int dfn[N],low[N],tt,pos[N];int in[N],ss;stack<int> s;void dfs(int u){low[u]=dfn[u]=++tt;in[u]=1;s.push(u);for (int i=head[u];i;i=pre[i])if (!dfn[to[i]]){dfs(to[i]);low[u]=min(low[u],low[to[i]]);}else if (in[to[i]]==1) low[u]=min(low[u],dfn[to[i]]);if (dfn[u]==low[u]){int v;ss++;do{v=s.top();s.pop();in[v]=2;pos[v]=ss;}while (v!=u);}}void work(){memset(head,0,sizeof(head));tot=0;memset(dfn,0,sizeof(dfn));memset(low,0,sizeof(low));tt=0;memset(in,0,sizeof(in));ss=0;memset(pos,0,sizeof(pos));scanf("%d%d",&n,&m);char ch[7];int num1,num2;for (int i=1;i<=m;i++){scanf("%s",ch);num1=num(ch);if (ch[0]=='h') num1+=n;scanf("%s",ch);num2=num(ch);if (ch[0]=='h') num2+=n;addedge(rev(num1),num2);addedge(rev(num2),num1);}for (int i=1;i<=n*2;i++) if (!dfn[i]) dfs(i);bool o=true;for (int i=1;i<=n;i++) if (pos[i]==pos[i+n]) o=false;if (o) printf("GOOD\n");else printf("BAD\n");}int main(){int T;scanf("%d",&T);while (T--) work();return 0; }
0 0
- bzoj1823(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
- 【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 经典建模
- 11.6 一道简单2-SAT题 BZOJ1823
- bzoj1823 tarjan算法应用-2-sats算法
- 2-sat(3)
- 2-SAT(4)
- skynet socketserver
- 单元测试JUNIT
- 深入理解Hadoop集群和网络
- bzoj 4727 [POI2017]Turysta 竞赛图
- EasyUI Ifrem弹出框问题
- bzoj1823(2 sat)
- Linux操作系统下如何制作Image映像文件
- C#实现Zip压缩解压实例
- Redis 设置密码
- 【物流系统】——C#Oracle批量导入(二)OracleBulkCopy
- linux虚拟机复制多节点配置IP
- oj练习--五位以内的对称素数
- skynet gateserver
- Content-Type深度了解