2-SAT
需要连通性相关中的强联通分量缩点。
函数
- :添加条件“若 的取值为 ,则 的取值为 ”。
- :判断是否有解。
代码
void Add(int x,int a,int y,int b){
//if(x=a)y=b
G1.add(x+a*n,y+b*n);
G1.add(y+(1-b)*n,x+(1-a)*n);
}
bool _2sat(){
for(int i=1;i<=2*n;i++)
if(!dfn[i])
tarjan(i);
for(int i=1;i<=n;i++)
if(col[i]==col[n+i])
return 0;
return 1;
}

浙公网安备 33010602011771号