HDOJ 1814 - Peaceful Commission 输出字典序最小的2-sat方案...暴力2-sat

博客讲述了在面对HDOJ 1814问题时,作者尝试使用强联通分量和拓扑排序寻找字典序最小的2-SAT解决方案但未果,最终采用暴力染色法成功解决。
摘要由CSDN通过智能技术生成
          题意
                  有N个政党..每个政党两个议员..现在要组建一个和平委员会..每个政党派出一个议员..而某些议员之间是有冲突的..他们不能同时出现在和平委员会中..问是否存在方案使得和平委员会顺利组建?如果有请输出字典序最小的一种...
          题解

                   这个字典序最小太恶心了..我开始用强联通分量..然后拓扑..无论怎么调整都找不到正确输出字典序最小的方法..最后直接暴力解决..暴力染色..


program:

#include<iostream>
#include<stdio.h>
#include<cmath>
#include<queue>
#include<stack>
#include<string.h>
#include<map>
#include<set>
#include<algorithm>
#define oo 1000000007
#define MAXN 8005
#define MAXM 20005
#define ll long long
using namespace std;  
struct node
{
       int x,y,next;
}line[MAXM<<1];
int n,last,Lnum,_next[MAXN<<1],num,way[MAXN<<1],color[MAXN<<1];
bool instack[MAXN<<1];
stack<int> mystack;
void addline(int x,int y)
{
       line[++Lnum].next=_next[x],_next[x]=Lnum,line[Lnum].x=x,line[Lnum].y=y;
}
bool 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值