UVA 1146 Now or later(2-SAT)

#include
#include
#include
#include
#include
using namespace std;
const int maxn=2000+5;
struct TwoSAT{
    int n;
    vector G[maxn*2];
    int mark[maxn*2];
    int s[maxn*2],c;
    
    bool dfs(int x){
        if(mark[x^1]) return false;
        if(mark[x]) return true;
        mark[x]=true;
        s[c++]=x;
        for(int i=0;in=n;
        for(int i=0;i<2*n;i++) G[i].clear();
        memset(mark,0,sizeof(mark));
    }
    
    void add_clause(int x,int xval,int y,int yval){
        x=x*2+xval;
        y=y*2+yval;
        G[x^1].push_back(y);
        G[y^1].push_back(x);
    }
    
    bool solve(){
        for(int i=0;i

你可能感兴趣的:(图论:2-sat)