国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

|BZOJ 2199|2-SAT|[Usaco2011 Jan]奶牛議會

2019-11-14 10:38:26
字體:
來源:轉載
供稿:網友

BZOJ傳送門 luogu免權限地址 2-SAT模板題,用2-SAT建圖后,枚舉每個議案能否通過

#include<cstdio> #include<algorithm> #include<cstring> #include<vector> #define ms(i,j) memset(i,j, sizeof i); using namespace std; const int MAXN = 1000 + 5;const char orz[10] = {'Y', 'N', '?'};int n,m; int ans[MAXN];struct twoSAT//這里標號從0開始 { vector<int> G[MAXN*2];//鄰接表 bool mark[MAXN*2];//每個點是否被標記 int n; int init(int ni)//初始化 { n = ni; for (int i=0;i<2*n;i++) G[i].clear(); } int addEdge(int x, int y, int xv, int yv)//加一個條件 { x = x*2+xv; y = y*2+yv; G[x^1].push_back(y); G[y^1].push_back(x);//2i是假,2i+1是真 } int dfs(int x) { if (mark[x^1]) return false;//對應點被標記,不符合要求 if (mark[x]) return true;//已經被標記直接返回 mark[x] = true;//標記 for (int i=0;i<G[x].size();i++)//繼續標記 { if (!dfs(G[x][i])) return false; } return true; } int check(int x)//檢查一個議案是否通過 { ms(mark, false); return dfs(x); }}ts;int main() { scanf("%d%d", &n,&m); ts.init(n); for (int i=0;i<m;i++) { int bi,ci; char vbi,vci; scanf("%d %c %d %c", &bi,&vbi,&ci,&vci); int vvbi = false, vvci = false; if (vbi=='Y') vvbi = true; if (vci=='Y') vvci = true; ts.addEdge(bi-1,ci-1,vvbi,vvci); } for (int i=0;i<n;i++) { int p = ts.check(i*2); int q = ts.check(i*2+1); if (!p&&!q) {
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 合阳县| 普陀区| 宁蒗| 龙海市| 长子县| 莒南县| 平顶山市| 驻马店市| 苗栗市| 石柱| 甘肃省| 新密市| 乐东| 礼泉县| 吉木萨尔县| 沙雅县| 区。| 黎川县| 得荣县| 岳池县| 内江市| 平阳县| 晋州市| 宁强县| 师宗县| 桐柏县| 阜新市| 兴义市| 墨玉县| 连城县| 杂多县| 绍兴县| 四川省| 梁河县| 正蓝旗| 盐山县| 甘德县| 苍南县| 嘉黎县| 祁东县| 万全县|