poj 1419 Graph Coloring_最大独立集
来源:互联网 发布:如何评价aqours 知乎 编辑:程序博客网 时间:2024/06/06 04:40
题目链接
题意:给出你一个无向图,然后对其中的点去上色, 只能上黑色和白色,要求是黑色点不能相邻,问最多能上多少黑色的顶点.
思路:点独立集:设无向图G=<V,E>,顶点集合V'是V的子集,若V'中的任意两个顶点都不相邻,则称V'为G的点独立集
这题求的是最大独立集
还有一个定理是最大独立集=补图的最大团
最大团=补图的最大独立集
#include<stdio.h>#include<string.h>#define MAXN 100int n,map[MAXN][MAXN],best,num[MAXN],res[MAXN],x,black[MAXN];bool dfs(int *tmp,int total,int cnt){int i,j,k,a[MAXN];if(!total){if(best<cnt){best=cnt;for(i=0;i<x;i++)black[i]=res[i];return true;}return false;}for(i=0;i<total;i++){if(cnt+(total-i)<=best)return false;if(cnt+num[tmp[i]]<=best)return false;res[x++]=tmp[i];for(k=0,j=i+1;j<total;j++)if(map[tmp[i]][tmp[j]])a[k++]=tmp[j];if(dfs(a,k,cnt+1))return true;x--;}return false;}int MaxNumClique(){int i,j,k,tmp[MAXN];best=0;for(i=n;i>=1;i--){x=0;for(k=0,j=i+1;j<=n;j++)if(map[i][j])tmp[k++]=j;res[x++]=i;dfs(tmp,k,1);num[i]=best;}return best;}int main(int argc, char** argv) {int i,j,m,x,y,t;scanf("%d",&t);while(t--){scanf("%d%d",&n,&m);memset(map,1,sizeof(map));for(i=1;i<=n;i++)map[i][i]=0;for(i=0;i<m;i++){scanf("%d%d",&x,&y);map[x][y]=map[y][x]=0;}printf("%d\n",MaxNumClique());for(i=0;i<best-1;i++)printf("%d ",black[i]);printf("%d\n",black[i]);}return 0;}
0 0
- poj 1419 Graph Coloring_最大独立集
- poj 1419 Graph Coloring (最大独立集 dfs)
- POJ 1419 Graph Coloring(最大独立集)
- POJ 1419 Graph Coloring(最大独立集、最大团)
- poj 1419 Graph Coloring(无向图的最大独立集)
- POJ 1419 Graph Coloring 最大独立点集->最大团 搜索
- POJ 1419 Graph Coloring(最大独立集/补图的最大团)
- Poj 1419 最大独立集
- POJ 1419 最大独立集
- 【最大点独立集】【poj1419】【Graph Coloring】
- poj 1419 【图】最大独立集模板
- poj 1419(求最大独立集)
- POJ 1419 最大独立集 模板
- POJ 2771 最大独立集
- POJ 1466 最大独立集
- POJ 3692 最大独立集
- poj 1466 最大独立集
- poj 2724 最大独立集
- SELECT语句逻辑执行顺序,你知道吗?
- 页面布局
- 通过邮件找回密码功能的实现
- [Oracle] 获取执行计划的各方法总结
- spring中autowire的用法
- poj 1419 Graph Coloring_最大独立集
- Hadoop控制输出文件命名
- leetcode: Trapping Rain Water
- PHP获取用户真实 IP , 淘宝IP接口获得ip地理位置
- myeclipse中快速查找类、方法
- 亚马逊AWS在线系列讲座——第1讲:云计算和AWS入门
- 错过
- PMP备考(一)- PMP考试起源及PMI理念
- Java代码编写的30条建议