[WorldFinal 2012E]Infiltration(dfs+图论)
Description
题意:给定一个点数为n的竞赛图,求图的最小支配集
n<=75
Solution
如果将竞赛图的一个点删去,这个图还是竞赛图
而竞赛图每个点相连的边数为(n-1),那么删去一个点后这个图变成原图一半大小的竞赛图
由此可知竞赛图的最小支配集是log(n)级别的
那么答案最大为6,爆搜即可
Code
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <bitset>
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;
}
[WorldFinal 2012E]Infiltration(dfs+图论)的更多相关文章
- Aizu - 2306 Rabbit Party (DFS图论)
G. Rabbit Party Time Limit: 5000ms Case Time Limit: 5000ms Memory Limit: 65536KB 64-bit integer IO f ...
- CF R639 div 2 E Quantifier Question 数学 dfs 图论
LINK:Quantifier Question 题面过长 引起不适 读题花了好长时间 对于 和 存在符合不是很熟练 导致很懵逼的做完了. 好在还算很好想.不过wa到了一个坑点上面 自闭一大晌 还以为 ...
- BZOJ 1064: [Noi2008]假面舞会(dfs + 图论好题!)
http://www.lydsy.com/JudgeOnline/problem.php?id=1064 题意: 思路: 考虑以下几种情况: ①无环并且是树: 无环的话就是树结构了,树结构的话想一下就 ...
- codeforces 723E:One-Way Reform
Description There are n cities and m two-way roads in Berland, each road connects two cities. It is ...
- Codeforces Round #479 (Div. 3)题解
CF首次推出div3给我这种辣鸡做,当然得写份博客纪念下 A. Wrong Subtraction time limit per test 1 second memory limit per test ...
- PAT甲级专题|最短路
PAT甲级最短路 主要算法:dijkstra 求最短最长路.dfs图论搜索. 1018,dijkstra记录路径 + dfs搜索路径最值 25分,错误点暂时找不出.. 如果只用dijkstra没法做, ...
- Educational Codeforces Round 82 (Rated for Div. 2) A-E代码(暂无记录题解)
A. Erasing Zeroes (模拟) #include<bits/stdc++.h> using namespace std; typedef long long ll; ; in ...
- 图论算法之DFS与BFS
概述(总) DFS是算法中图论部分中最基本的算法之一.对于算法入门者而言,这是一个必须掌握的基本算法.它的算法思想可以运用在很多地方,利用它可以解决很多实际问题,但是深入掌握其原理是我们灵活运用它的关 ...
- 用深度优先搜索(DFS)解决多数图论问题
前言 本文大概是作者对图论大部分内容的分析和总结吧,\(\text{OI}\)和语文能力有限,且部分说明和推导可能有错误和不足,希望能指出. 创作本文是为了提供彼此学习交流的机会,也算是作者在忙碌的中 ...
随机推荐
- 封装vue-resource http请求
import Vue from "vue" import vueResource from "vue-resource" Vue.use(vueResource ...
- 内表转WORD
组合HTML字符串的方法来导出WORD文件 DATA: BEGIN OF wa_html, zhtml(), END OF wa_html, gt_html LIKE TABLE OF wa_html ...
- 错误Cannot find module 'stylus'
vue项目中使用stylus预处理器写css语法,老是出现 Cannot find module ‘stylus’ 的错误,鼓捣了很久,包括webstorm中配置stylus的支持,安装依赖. 终于找 ...
- ionic1跨域问题
在使用ionic是遇到跨域问题 我自己尝试简单的单间一个能返回数据的后台服务器,ionic的www目录我使用一个ionic的livereload 来当做一个简易的web服务器,在使用ionic ser ...
- 【转】C内存操作函数
一.malloc/calloc 名称: Malloc/calloc 功能: 动态内存分配函数 头文件: #include <stdlib.h> 函数原形: void *malloc(si ...
- Objectbox Box的getAll() 函数返回emptylist() 未判断导致崩溃
最近使用了Objectbox作为新项目的数据库后台,Greendao开发团队新力作,但是Objectbox算是比较新的一个东西,现在资料也不多. 今天跟大家分享一个关于Box类的getAll()函数的 ...
- Dijkstra单源最短路径,POJ(2387)
题目链接:http://poj.org/problem?id=2387 Dijkstra算法: //求某一点(源点)到另一点的最短路,算法其实也和源点到所有点的时间复杂度一样,O(n^2); 图G(V ...
- 20145238-荆玉茗 《Java程序设计》第9周学习总结
20145238第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 ·数据库本身是个独立运行的应用程序 ·撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 ...
- 如何安装Ruby(Windows)
Ruby解释器的安装 1.Windows平台 想尽快安装并运行Ruby,可遵循如下步骤: 1.启动Web浏览器,访问 http://www.ruby-lang.org/en/downloads/ 2. ...
- scrapy install
csf@ubuntu:~$ sudo apt install python-scrapy