题意:n个节点,可用描成黑色或者白色,黑节点和黑节点不能相连,问最多描出多少黑节点

#include <iostream>
#include <stdio.h>
#include<memory.h>
using namespace std; #define null NULL
const int N = ;
int final = -;
int mindex[N];
int map[N][N];
int vis[N];
int res[N];
int n, m; void read()
{
int s, e;
for (int i = ; i < m; i++)
{
cin >> s >> e;
map[s][mindex[s]++] = e;
map[e][mindex[e]++] = s;
} } void dfs(int cur, int total)
{
if(final!=- && n-cur++total<=final)
{
//n-cur+1+total,表示把当前节点和后面的所有节点都描成黑色能达到的最大数
return;
}
if (cur > n)
{
if (total > final)
{
final = total;
int j = ;
for (int i = ; i <= n; i++)
{
if (vis[i] == )
{
res[j++] = i;
}
}
}
return;
}
int ok = ;
for (int i = ; i < mindex[cur]; i++)
if (vis[map[cur][i]] == )
{
ok = ;
break;
}
if (ok)
{
vis[cur] = ;
dfs(cur + , total + );
}
vis[cur] = ;
dfs(cur + , total);
} int main(int argc, char* argv[])
{
//freopen("C:\\Users\\zzzzz\\Desktop\\1.txt","r",stdin);
int k;
cin >> k;
while (k--)
{
cin >> n >> m;
memset(map, , sizeof(map));
memset(mindex, , sizeof(mindex));
memset(vis,,sizeof(vis));
read();
final = -;
dfs(, );
cout<<final<<endl;
cout<<res[];
for(int i = ; i <final;i++)
cout<<" "<<res[i];
cout<<endl;
} return ;
}

uva-193-图染色-枚举的更多相关文章

  1. BZOJ1006:[HNOI2008]神奇的国度(弦图染色)

    Description K国是一个热衷三角形的国度,连人的交往也只喜欢三角原则.他们认为三角关系:即AB相互认识,BC相互认识,CA相互认识,是简洁高效的. 为了巩固三角关系,K国禁止四边关系,五边关 ...

  2. BZOJ 1006: [HNOI2008]神奇的国度(弦图染色)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1006 题意: 思路: 这个就是弦图染色问题,弦图啥的反正我也不懂,具体看论文https://wenk ...

  3. uva 193 Graph Coloring(图染色 dfs回溯)

    Description You are to write a program that tries to find an optimal coloring for a given graph. Col ...

  4. UVA 193 Graph Coloring 图染色 DFS 数据

    题意:图上的点染色,给出的边的两个点不能都染成黑色,问最多可以染多少黑色. 很水的一题,用dfs回溯即可.先判断和当前点相连的点是否染成黑色,看这一点是否能染黑色,能染色就分染成黑色和白色两种情况递归 ...

  5. UVA 1613 K度图染色

    题目 \(dfs+\)证明. 对于题目描述,可以发现\(K\)其实就是大于等于原图中最大度数的最小奇数,因为如果原图度数最大为奇数,则最多颜色肯定为K,而如果原图最大度数为偶数,则\(K\)又是奇数, ...

  6. 【BZOJ1006】【HNOI2008】神奇的国度(弦图染色)

    1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MBSubmit: 1467  Solved: 603[Submit][Stat ...

  7. UVa 10465 Homer Simpson (枚举)

    10465 - Homer Simpson Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onli ...

  8. bzoj 1006 弦图染色

    给定一个弦图,问最少染色数. 对于弦图的一个完美消去序列,从后往前染色,每次染可以染的最小编号的颜色,由完美消去序列的定义,序列任一后缀的点的导出子图中,由该后缀第一个元素及其邻接点导出的子图一定是完 ...

  9. BZOJ1006 神奇的国度 【弦图染色——最大势算法MCS】

    1006: [HNOI2008]神奇的国度 Time Limit: 20 Sec  Memory Limit: 162 MB Submit: 4146  Solved: 1916 [Submit][S ...

  10. Ordering Tasks UVA - 10305 图的拓扑排序

    John has n tasks to do. Unfortunately, the tasks are not independent and the execution of one task i ...

随机推荐

  1. Maven3的环境配置

    1 需要准备一个Maven的包,名字叫:apache_maven_3.3.9(在百度中搜索自行下载) 2 在eclipse中点击window→preferences→maven→Installatio ...

  2. 安卓手机文件管理器简单横向评比 - imsoft.cnblogs

      X-plore文件管理器 个人评价:安卓手机上管理文件的神器,所有文件一览无余,加上自己对软件常用功能的配置,管理文件无比方便.(本人一直使用)   Solid文件管理器 个人评价:用户体验真的很 ...

  3. HDU 4135:Co-prime(容斥+二进制拆分)

    Co-prime Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total S ...

  4. 计算n^k的开头三位和末尾三位(fmod(double x,double y)函数的引入)

    C 库函数 double fmod(double x, double y) 返回 x 除以 y 的余数. 所以fmod(x,1)得到的就是小数部分的值(如fmod(3.35,1)==0.35) htt ...

  5. 【java规则引擎】《Drools7.0.0.Final规则引擎教程》第3章 3.2 KIE API解析

    转载至:https://blog.csdn.net/wo541075754/article/details/75004575 3.2.4 KieServices 该接口提供了很多方法,可以通过这些方法 ...

  6. Patch打补丁学习笔记

    1.基本命令语法: patch [-R] {-p(n)} [--dry-run] < patch_file_name p:为path的缩写. n:指将patch文件中的path第n条’/’及其左 ...

  7. linux修改文件所有者和文件所在组

      chgrp  用户名    文件名  -R chown 用户名   文件名  -R -R表示递归目录下所有文件 以上部分已验证 一.修改文件所属组群——chgrp    修改文件所属组群很简单-c ...

  8. centos 修改host

    centos 修改host vi /etc/hosts添加一行127.0.0.1 test.com /etc/rc.d/init.d/network restart

  9. AppBox中main树节点单击事件JS(还有叶子的节点的页面链接)

    AppBox中main.aspx.csif (menu.IsTreeLeaf) {                        node.Leaf = true;                   ...

  10. Angular 4 延缓加载组件

    1. 创建App ng new lazySample --routing 在app组件中的定义路由 2. 创建“Lazy” Module ng g module lazy --flat ng g co ...