
2-sat
wanherun
今天会有好事发生吗
展开
-
poj3683 Priest John's Busiest Day
题目2-sat问题,要求要输出方案。先考虑建模,把每个婚礼都拆成两个部分。对于两个婚礼,A,B,用A,B表示开始,A’,B’表示结束,如果A与B,B’都冲突的话,A就不能选,连向A’,否则只有一个冲突的话,A连B’,A’连B。这样图就建好了,那么如何输出方案呢,一般tarjan后跑一个拓扑序就好了,但是有更好的方案,tarjan相当于就是一个拓扑了,最后只要A与A’谁的强连通分量编号小就选谁就好了。原创 2018-01-27 08:56:07 · 231 阅读 · 0 评论 -
bzoj1823 [JSOI2010]满汉全席
题目2-sat裸题,最近刚刚学了这个东西,毕竟NOI考过呀。建边就是考虑限制条件如果x选什么,y就一定选什么之类的,然后跑一遍tarjan缩点,如果存在一个点和它的相反点在一个强连通分量中,那么就没解,否则一定有解。至于输出一个解,只要看mark的大小就好了,选小的就好了。#include<bits/stdc++.h> #define N 100000 using namespace std; in原创 2018-01-15 21:46:31 · 489 阅读 · 0 评论