cf 167.div2 E.Dima and Horses

简介:

    题意很简单,就是分组,让冲突最多有一种,因为只要分成2组,就是个2-SAT

    但是最多只有3个不和,就是不和的三个里至少有2个在一组,所以应该必然有解(这边不太明白,感觉这样),直接染色就可以了


/*
author:jxy
lang:C/C++
university:China,Xidian University
**If you need to reprint,please indicate the source**
*/
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <queue>
#define INF 1E9
using namespace std;
int en[300010][3];
int d[300010];
bool ok[300010];
bool sat(int v)
{
    int i,now=0,u;
    for(i=0;i<d[v];i++)
    {
        u=en[v][i];
        if(ok[u]==ok[v])now++;
    }
    if(now>1)
    {
        ok[v]=!ok[v];
        for(i=0;i<d[v];i++)
        {
            u=en[v][i];
            if(ok[v]==ok[u])sat(u);
        }
    }
}
int main()
{
    int n,m,i,a,b;
    scanf("%d%d",&n,&m);
    memset(d,0,sizeof(d));
    memset(ok,0,sizeof(ok));
    for(i=0;i<m;i++)
    {
        scanf("%d%d",&a,&b);
        en[a][d[a]++]=b;
        en[b][d[b]++]=a;
    }
    for(i=1;i<=n;i++)
      sat(i);
    for(i=1;i<=n;i++)
      printf("%d",ok[i]);
    puts("");
}


目录
相关文章
|
4月前
|
算法
CF 1561
【7月更文挑战第20天】
48 2
|
6月前
el-tree在el-form中通过rules进行校验
el-tree在el-form中通过rules进行校验
209 1
|
6月前
汇编指令学习(ADD,SUB,MUL,DIV,XADD,INC,DEC,NEG)
汇编指令学习(ADD,SUB,MUL,DIV,XADD,INC,DEC,NEG)
104 0
|
机器学习/深度学习 人工智能
B2. Wonderful Coloring - 2<734.div3>
B2. Wonderful Coloring - 2<734.div3>
61 1
|
人工智能 供应链
REF615 HCFFA EAGAN B2B AA 1XD
REF615 HCFFA EAGAN B2B AA 1XD
58 0
|
SQL Oracle 关系型数据库
BC范式(Boyce-Codd Normal Form,BCNF)
BC范式(Boyce-Codd Normal Form,BCNF)是关系数据库设计中的一个规范化级别,它建立在第三范式(3NF)的基础上,通过进一步消除非主属性对于候选键的部分函数依赖来消除主属性对于候选键的传递依赖
620 1
|
人工智能
CF628B
CF628B
68 0