博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[WorldFinal 2012E]Infiltration(dfs+图论)
阅读量:6956 次
发布时间:2019-06-27

本文共 1053 字,大约阅读时间需要 3 分钟。

Description

题意:给定一个点数为n的竞赛图,求图的最小支配集

n<=75

Solution

如果将竞赛图的一个点删去,这个图还是竞赛图

而竞赛图每个点相连的边数为(n-1),那么删去一个点后这个图变成原图一半大小的竞赛图

由此可知竞赛图的最小支配集是log(n)级别的

那么答案最大为6,爆搜即可

Code

#include 
#include
#include
#include
using namespace std;bitset<99> g[99],tmp; int cas,n,path[9],Ans;bool dfs(int k,int p,bitset<99> cur){ if(k>=Ans) return (cur.count()==n);//支配所有点 for(int i=p;i<=n;++i) if(dfs(k+1,(path[k+1]=i),cur|g[i])) return 1; return 0;}int main(){ while(~scanf("%d",&n)){ for(int i=1;i<=n;++i) for(int j=1;j<=n;++j){ char ch=getchar();while(ch!='0'&&ch!='1')ch=getchar(); g[i][j]=ch-'0'; if(i==j)g[i][j]=1;//包括自己这个点 } for(Ans=1;Ans<=10;Ans++) if(dfs(0,1,tmp))break;//迭代加深搜索 printf("Case %d: %d ",++cas,Ans); for(int i=1;;++i) printf("%d ",path[i]); printf("\n"); for(int i=1;i<=n;++i) g[i]=tmp;//初始化 } return 0;}

转载于:https://www.cnblogs.com/void-f/p/8495757.html

你可能感兴趣的文章
第四十天
查看>>
linux下重要文件夹的解析
查看>>
连接查询
查看>>
BZOJ1823[JSOI2010]满汉全席——2-SAT+tarjan缩点
查看>>
【UIKit】UITableView 6 编辑模式
查看>>
uva 10994 - Simple Addition
查看>>
团队作业4--第一次项目冲刺(Alpha版本)6
查看>>
python 主要模块和方法
查看>>
XPath手册 [源于ZVON]
查看>>
26:IPMaskCheck识别有效的ip地址和掩码并分类统计
查看>>
[Android]Thread线程入门4--多线程
查看>>
[20190423]那个更快的疑问3.txt
查看>>
[20170705]理解linux su命令.txt
查看>>
iOS - ImageCache 网络图片缓存
查看>>
如何调整eclipse中代码字体大小
查看>>
ubuntu16.04下python2、python3环境选择与python升级(pip版本切换)
查看>>
FQDN说明
查看>>
java基础---常用类!
查看>>
discuz论坛后台部分设置更改之后,清除了缓存网站前台不更新不生效的解决办法...
查看>>
ACM-ICPC 2018 沈阳赛区网络预赛 F Fantastic Graph(贪心或有源汇上下界网络流)
查看>>