POJ1419 Graph Coloring
来源:互联网 发布:预防网络诈骗班会流程 编辑:程序博客网 时间:2024/05/29 19:14
一般图的最大独立集=补图的最大团。
直接套最大团的模板
#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <string>#include <map>#include <queue>#include <vector>#define inf 0x7fffffff#define met(a,b) memset(a,b,sizeof a)typedef long long ll;using namespace std;const int N = 105;const int M = 25005;bool w[N][N];bool use[N]; //进入团的标号bool bestx[N];int cn,bestn,p,e;void dfs(int x) { bool flag; if(x>p) { bestn=cn; //cn的值是递增的 for( int i=1;i<=p; i++) //赋值给另外一个数组, bestx[i]=use[i]; return ; } flag=true; for( int i=1; i<x; i++) if(use[i]&&!w[i][x]) { flag=false; break; } if(flag) { cn++; use[x]=true; dfs(x+1); cn--; use[x]=false;//回溯 } if(cn+p-x>bestn) { //剪枝 dfs(x+1); }}int main() { int num,u,v; scanf("%d",&num); while(num--) { memset(w,true,sizeof(w)); memset(use,false,sizeof(use)); memset(bestx,false,sizeof(bestx)); scanf("%d%d",&p,&e); for(int i=0; i<e; i++) { scanf("%d%d",&u,&v); w[u][v]=false; w[v][u]=false; } cn=bestn=0; dfs(1); printf("%d\n",bestn); for (int i=1; i<=p; i++)if(bestx[i])printf("%d ",i);printf("\n"); } return 0;}
阅读全文
0 0
- poj1419 - Graph Coloring
- POJ1419 Graph Coloring
- poj1419 Graph Coloring
- POJ1419 Graph Coloring
- POJ1419 Graph Coloring
- 【最大点独立集】【poj1419】【Graph Coloring】
- poj1419——Graph Coloring(dfs)
- poj1419 Graph Coloring,无向图,最大独立集
- POJ1419:Graph Coloring(图的最大独立集)
- Graph Coloring
- poj 1419 Graph Coloring
- uva 193 - Graph Coloring
- UVa 193 - Graph Coloring
- uva 193 - Graph Coloring
- UVa 193 - Graph Coloring
- POJ 1419 Graph Coloring
- Graph coloring(P1419)
- 193 - Graph Coloring
- Python 统计文件相同字段次数
- python 自动批量安装apk并抓取日志
- LInux配置
- Docker容器技术介绍(二) --- Docker镜像操作
- Java 资源文件路径详解(getResource)
- POJ1419 Graph Coloring
- 网站页面title标题的设置方法技巧
- JavaScript --01 引言
- 第5周时间项目3 判断输入的左右括号是否匹配
- leetcode
- Spring Boot笔记之自定义启动banner
- softmax函数
- Java代码性能优化
- 编译器对堆栈的使用