本文共 1471 字,大约阅读时间需要 4 分钟。
训练指南上的翻译错了,只有一对新娘新郎,其他是夫妻。
//#pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std;typedef long long ll;typedef unsigned long long ull;typedef pair pii;#define pb(a) push(a)#define INF 0x1f1f1f1f#define lson idx<<1,l,mid#define rson idx<<1|1,mid+1,r#define PI 3.1415926535898template T min(const T& a,const T& b,const T& c) { return min(min(a,b),min(a,c));}template T max(const T& a,const T& b,const T& c) { return max(max(a,b),max(a,c));}void debug() {#ifdef ONLINE_JUDGE#else freopen("d:\\in1.txt","r",stdin); freopen("d:\\out1.txt","w",stdout);#endif}int getch() { int ch; while((ch=getchar())!=EOF) { if(ch!=' '&&ch!='\n')return ch; } return EOF;}const int maxn=66;struct TwoSat{ int n; int mark[maxn*2]; vector g[maxn*2]; int s[maxn],c; void init(int n) { this->n=n; memset(mark,0,sizeof(mark)); for(int i=0;i<2*n;i++) g[i].clear(); } void add_clause(int x,int xval,int y,int yval) { x=x*2+xval; y=y*2+yval; g[x].push_back(y^1); g[y].push_back(x^1); } bool dfs(int u) { if(mark[u^1])return false ; if(mark[u])return true; mark[u]=1; s[c++]=u; for(int i=0;i ='0')j++; while(b[k]<='9'&&b[k]>='0')k++; int x=0,y=0; for(int d=0;d
转载于:https://www.cnblogs.com/BMan/p/3619313.html