比赛 20120722 评测结果 AWWTTTWTTT
题目名称 MAX-2-SAT 最终得分 10
用户昵称 Truth.Cirno 运行时间 6.007 s
代码语言 C++ 内存使用 0.29 MiB
提交时间 2012-07-22 11:41:33
显示代码纯文本
#include <cstdio>
using namespace std;

int n,m,maxlen=0,a[200][2];
bool rec[31];

void cal(void)
{
	int i,c=0;
	bool x,y;
	for (i=0;i<m;i++)
	{
		if (a[i][0]>0)
			x=rec[a[i][0]];
		else
			x=!rec[-a[i][0]];
		if (a[i][1]>0)
			y=rec[a[i][1]];
		else
			y=!rec[-a[i][1]];
		if (x||y)
			c++;
	}
	if (maxlen<c)
		maxlen=c;
}

void make(int val,int deep)
{
	rec[deep]=val;
	if (deep==n)
	{
		cal();
	}
	else
	{
		make(0,deep+1);
		make(1,deep+1);
	}
}

int main(void)
{
	freopen("max2sat.in","r",stdin);
	freopen("max2sat.out","w",stdout);
	int times,i,T;
	scanf("%d",&T);
	for (times=0;times<T;times++)
	{
		scanf("%d%d",&n,&m);
		for (i=0;i<m;i++)
			scanf("%d%d",&a[i][0],&a[i][1]);
		make(0,1);
		make(1,1);
	}
	printf("%d\n",maxlen);
	return(0);
}