QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#340564 | #997. 2-SAT 问题 | KnownError_# | RE | 0ms | 0kb | C++14 | 1.6kb | 2024-02-29 10:12:15 | 2024-02-29 10:12:16 |
answer
#include <bits/stdc++.h>
using namespace std;
using ui = unsigned;
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define rep(i,l,r) for(int i=(l);i<=(r);++i)
#define per(i,l,r) for(int i=(l);i>=(r);--i)
#define repn(i,n) for(int i=0;i<(n);++i)
#define sizc(x) ((int)x.size())
#define allc(x) x.begin(),x.end()
#define fir first
#define sec second
namespace KnownError_{
constexpr int N = 1e5+5;
int n,m,s,t;
vector<int> G[N],Gi[N];
void add(int u,int v){
G[u].push_back(v);
Gi[v].push_back(u);
}
bool vis[N<<1];
int a[N<<1],cnt,idx,bel[N<<1];
void dfs1(int u){
vis[u]=1;
for(auto v:G[u])if(!vis[v])dfs1(v);
a[++cnt]=u;
}
void dfs2(int u){
bel[u]=idx;
vis[u]=1;
for(auto v:Gi[u])if(!vis[v])dfs2(v);
}
void main(){
cin>>n>>m;
repn(_,m){
int a,b,c,d;
cin>>a>>b>>c>>d;
add(a+(!b)*n,c+d*n);
add(c+(!d)*n,a+b*n);
}
rep(i,1,n<<1)if(!vis[i])dfs1(i);
fill(vis+1,vis+(n<<1)+1,0);
per(i,n<<1,1)if(!vis[a[i]])++idx,dfs2(a[i]);
rep(i,1,n)if(bel[i]==bel[i+n]){
cout<<"No\n";
return;
}
cout<<"Yes\n";
rep(i,1,n)
if(bel[i]>bel[i+n])cout<<"0 ";
else cout<<"1 ";
cout<<'\n';
}
}
signed main(){
#ifndef ONLINE_JUDGE
freopen("sample.in","r",stdin);
freopen("sample.out","w",stdout);
#endif
ios::sync_with_stdio(false);
cin.tie(nullptr);
KnownError_::main();
}
详细
Test #1:
score: 0
Runtime Error
input:
86354 86418 14615 0 14903 1 13605 0 4458 0 15604 0 77112 0 52311 1 64996 0 22711 1 74245 1 39042 1 57372 1 2994 1 84183 1 80574 0 58791 1 27780 1 9336 1 61809 0 7216 0 71113 0 42287 1 20073 0 72448 0 73840 0 77048 0 28955 0 4165 0 16322 1 14075 1 43512 0 58600 1 45219 0 53858 0 14919 0 22576 0 16594...