// 题目来源:POJ 3648
// 题目大意:有n对夫妻参加婚礼,现安排座位,已经某些人不能同时坐在新娘的对面,且夫妻不可同侧,求可行方案
// 解决方法:仍然2-sat建图解决
// 特别注意:新娘到新郎要连边,因为选出的必须是新郎
#include <cstdio>
#include <string>
#define o 100000
#define _ 1000000
using namespace std;
void link( int, int );
void link2( int, int );
void tarjan( int );
void topsort( int );
void dfs( int );
int next[_], next2[_], g[_], g2[_];
int h[o], h2[o], dfn[o], low[o], stack[o], done[o], code[o], color[o], cfl[o], id[o];
int n, m, top, t, t2, tt, index, cnt;
bool ins[o];
bool ok;
int main( )
{
freopen( "3648.in", "r", stdin );
freopen( "3648.out", "w", stdout );
scanf( "%d%d", &n, &m );
int aa, bb;
char ch, ch2;
while( n != 0 )
{
memset( next, 0, sizeof( next ) );
memset( next2, 0, sizeof( next2 ) );
memset( h, 0, sizeof( h ) );
memset( h2, 0, sizeof( h2 ) );
memset( dfn, 0, sizeof( dfn ) );
memset( low, 0, sizeof( low ) );
memset( co
【代码】POJ 3648
最新推荐文章于 2026-05-08 15:54:18 发布
这是一个使用2-SAT算法解决POJ 3648题目的程序。题目要求在n对夫妻中安排座位,使得某些人不能坐在新娘对面,夫妻不同侧,并找出可行的座位方案。程序通过建图、深度优先搜索和拓扑排序等方法实现求解。

238

被折叠的 条评论
为什么被折叠?



