// 题目来源:POJ 2723
// 题目大意:m道门,每道门两把锁,有n对钥匙,对应2*n把锁,已知一对钥匙内取出一把另一把就会消失,求按顺序最多可开多少门
// 解决方法:依然2-sat啦,只不过要带上二分答案
#include <cstdio>
#include <string>
#define o 10002
#define _ 10002
void link( int, int );
bool check( int );
void tarjan( int );
int next[_], g[_];
int h[o], stack[o], opp[o], a[o], b[o], dfn[o], low[o], code[o];
int n, m, t, index, top, cnt;
bool ins[o];
int main( )
{
freopen( "2723.in", "r", stdin );
freopen( "2723.out", "w", stdout );
scanf( "%d%d", &n, &m );
int aa, bb;
while( n != 0 )
{
memset( opp, 0, sizeof( opp ) );
for( int i = 1; i <= n; i++ )
{
scanf( "%d%d", &aa, &bb );
opp[aa] = bb;
opp[bb] = aa;
}
for( int i = 1; i <= m; i++ )
scanf(
【代码】POJ 2723
最新推荐文章于 2021-11-08 18:19:13 发布
该博客主要介绍了如何利用2-SAT算法解决一道编程题(POJ 2723)。题目是关于m道门和n对钥匙的问题,通过建立并求解2-SAT模型来确定最多可以按顺序开启多少道门。博客内容包括算法实现、关键代码片段以及解答思路。
摘要由CSDN通过智能技术生成