麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

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

[BZOJ2199][Usaco2011 Jan][2-SAT]奶牛議會

2019-11-11 05:15:35
字體:
來源:轉載
供稿:網友

分享一篇不錯的2-sat介紹博客

2-SAT可以用來判斷給出的限制能不能全滿足。 那么枚舉每個議案,用2-SAT分別判斷當這個議案通過和否決時有沒有解。 在判斷的時候因為已經知道的當前議案的通過情況,只用從對應的點dfs出去,標記路徑上的點,最后判定有沒有矛盾。

#include <cstdio>#include <cstring>#include <string>#include <iostream>#define N 2010#define M 8010using namespace std;int n,m,x,y,cnt;int G[N],V[N];char a,b,Ans[N];struct edge{ int t,nx;}E[M];inline void reaD(int &x){ char Ch=getchar();x=0; for(;Ch>'9'||Ch<'0';Ch=getchar()); for(;Ch>='0'&&Ch<='9';x=x*10+Ch-'0',Ch=getchar());}inline void reaD(char &x){ while((x=getchar())!='Y'&&x!='N');}void InserT(int x,int y){ E[++cnt].t=y;E[cnt].nx=G[x];G[x]=cnt;}void dfs(int x){ V[x]=1; for(int i=G[x];i;i=E[i].nx) if(!V[E[i].t]) dfs(E[i].t);}int check(int x){ memset(V,0,sizeof(V)); dfs(x); for(int i=1;i<=n;i++) if(V[i<<1]&&V[i<<1|1]) return 0; return 1;}int main(){ reaD(n);reaD(m); for(int i=1;i<=m;i++){ reaD(x);reaD(a);reaD(y);reaD(b); if(a=='Y') x=x<<1|1; else x=x<<1; if(b=='Y') y=y<<1|1; else y=y<<1; InserT(x,y^1);InserT(y,x^1); } for(int i=1;i<=n;i++){ int yes=check(i<<1),no=check(i<<1|1); if(yes&&no) Ans[i]='?'; else if(!yes&&!no) {puts("IMPOSSIBLE");return 0;} else if(yes) Ans[i]='Y'; else Ans[i]='N'; } return puts(Ans+1),0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日日狠狠久久 | 国产1区视频 | 成人福利免费在线观看 | 欧美人人干 | 欧美日韩在线视频一区 | 久久99久久98精品免观看软件 | chinese xvideos gay | 九九热精品视频在线免费观看 | 污黄视频在线播放 | 成人毛片100部 | 一级网站 | 国产美女的小嫩bbb图片 | 蜜桃一本色道久久综合亚洲精品冫 | 欧美h版在线观看 | 久久亚洲精品久久国产一区二区 | 黄色网址在线免费播放 | 91久久久久久久一区二区 | 国产精品亚洲综合一区二区三区 | 久久久一区二区三区精品 | 在线成人免费av | av黄色在线免费观看 | 国产一区成人 | 在线观看视频亚洲 | 国产精品成人亚洲一区二区 | 亚洲欧美日韩一区二区三区在线观看 | 亚洲综人网 | 在线播放av片 | 免费观看在线 | 国产电影av在线 | 国产一级中文字幕 | 黄色一级片在线观看 | 日本a级一区 | 91成人免费在线观看 | 欧美精品18| 成人免费网站在线观看视频 | 成人综合免费视频 | 亚洲国产高清视频 | 色屁屁xxxxⅹ在线视频 | 九九精品在线播放 | 国产成人在线网址 | 成人免费福利视频 |