[BZOJ1823][JSOI2010]满汉全席 && 2-sat
来源:互联网 发布:python 3 base64 编辑:程序博客网 时间:2024/04/27 17:10
PPT:http://wenku.baidu.com/view/afd6c436a32d7375a41780f2.html
这是道2-sat裸题吧 练手的
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>#include<queue>#define SF scanf#define PF printfusing namespace std;typedef long long LL;const int MAXN = 1000;struct Node { int v, next;} Edge[MAXN*2+10];int adj[MAXN+10], ecnt, dfn[MAXN+10], low[MAXN+10], SCC[MAXN+10], scc, dcnt;int Q[MAXN+10], top;int n, m;void add(int u, int v) { Node &e = Edge[++ecnt]; e.v = v; e.next = adj[u]; adj[u] = ecnt;}void dfs(int u) { low[u] = dfn[u] = ++dcnt; Q[++top] = u; for(int i = adj[u]; i; i = Edge[i].next) { int v = Edge[i].v; if(!dfn[v]) { dfs(v); low[u] = min(low[u], low[v]); } else if(!SCC[v]) low[u] = min(low[u], dfn[v]); } if(low[u] == dfn[u]) { scc++; int x; do { x = Q[top--]; SCC[x] = scc; } while(x != u); }}int main() { int _T; SF("%d", &_T); while(_T--) { ecnt = dcnt = scc = top = 0; memset(adj, 0, sizeof(adj)); memset(dfn, 0, sizeof(dfn)); memset(low, 0, sizeof(low)); memset(SCC, 0, sizeof(SCC)); SF("%d%d", &n, &m); for(int i = 1; i <= m; i++) { int x, y, xx, yy; char op1, op2; SF(" %c%d %c%d", &op1, &xx, &op2, &yy); if(op1 == 'm') xx = xx*2; else xx = xx*2-1; if(op2 == 'm') yy = yy*2; else yy = yy*2-1; if(xx & 1) x = xx+1; else x = xx-1; if(yy & 1) y = yy+1; else y = yy-1; add(xx, y); add(yy, x); } bool ok = true; for(int i = 1; i <= 2*n; i++) if(!dfn[i]) dfs(i); for(int i = 1; i <= n; i++) if(SCC[i*2] == SCC[i*2-1]) { ok = false; break; } if(ok) puts("GOOD"); else puts("BAD"); } 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判定
- C++的函数重载
- man rsyslog.conf的介绍
- POI写docx文件table中的单元格水平、垂直对齐
- Linux 安装JDK 版本报错
- 系统入门(2):Android动态加载jar、apk的实现
- [BZOJ1823][JSOI2010]满汉全席 && 2-sat
- 宁夏信息网,宁夏信息港,宁夏信息中心
- 表单控件(按钮)
- 【移动开发多平台代码共享】
- Service解析
- android调用webXml 查询发车站和到达站查询火车时刻表
- 生成随机 简体汉字 繁体汉字
- LeetCode 查找 Search a 2D Matrix
- C/C++内存泄漏及检测