1.读入图,边是双向的

2.递归建树,同时确定每一层的节点

3.dfs按层搜索,先把这一层所有被传染的(die[pa[k]]=true的)的die置为true

然后循环,每次把一个die为true的变为false,表示断开这条边,继续dfs

dfs的最后记得把这一层die的全部置为false(查了一下午...)

退出条件:now当前死的人>=ans, f当前层>layerNum,num这一层死的人==0

代码:

#include<iostream>
#define Size 305
#define INF 10000000
using namespace std; int n;
int g[Size][Size];
int layer[Size][Size];
int pa[Size];
bool vis[Size];
bool die[Size];
int ans=INF;
int layerNum=;
int way[Size]; void buildTree(int k,int f){
vis[k]=true;
layer[f][++layer[f][]]=k;
if(f>layerNum)layerNum=f; for(int i=;i<=g[k][];i++){
int s=g[k][i];
if(!vis[s]){
pa[s]=k;
buildTree(s,f+);
}
}
} void dfs(int f,int now){//f:layer
if(now>=ans)return;
if(f>layerNum){
ans=min(now,ans);
/*cout<<ans<<": ";
for(int i=1;i<=layerNum;i++)cout<<way[i]<<' ';
cout<<endl;*/
return;
}
int num=;
for(int i=;i<=layer[f][];i++){
int k=layer[f][i];
if(die[pa[k]])die[k]=true,num++;
}
if(num==){
ans=min(now,ans);
return;
}
for(int i=;i<=layer[f][];i++){
int k=layer[f][i];
if(die[k]){
way[f]=k;
die[k]=false;
dfs(f+,now+num-);
die[k]=true;
}
}
for(int i=;i<=layer[f][];i++){//退出之前清零当前层的die
die[layer[f][i]]=false;
}
} int main(){
freopen("1091.in","r",stdin); int p,a,b;
cin>>n>>p;
for(int i=;i<=p;i++){
cin>>a>>b;
g[a][++g[a][]]=b;
g[b][++g[b][]]=a;
}
buildTree(,);
/*for(int i=1;i<=layerNum;i++){
for(int j=1;j<=layer[i][0];j++)
cout<<layer[i][j]<<' ';
cout<<endl;
}*/
die[]=true;
dfs(,);
cout<<ans<<endl; fclose(stdin);
return ;
}

code1091 传染病控制的更多相关文章

  1. NOIP2003 传染病控制

    题四     传染病控制 [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国 大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完 全认 ...

  2. P1041 传染病控制(dfs)

    P1041 传染病控制 题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染 ...

  3. [COGS 0107][NOIP 2003] 传染病控制

    107. [NOIP2003] 传染病控制 ★★★   输入文件:epidemic.in   输出文件:epidemic.out   简单对比时间限制:1 s   内存限制:128 MB [问题背景] ...

  4. AC日记——传染病控制 洛谷 P1041

    传染病控制 思路: 题目想问的是: 有一棵树: 对于除1外每个深度可以剪掉一棵子树: 问最后剩下多少节点: 题目意思一简单,这个题立马就变水了: 搜索就能ac: 数据有为链的情况,按深度为层次搜索的话 ...

  5. 【搜索】P1041 传染病控制

    题目链接:P1041 传染病控制 题解: 这个题目是看别人的博客做出来的,其实挺不错的一个题目,考察的东西挺多的, 一个dfs可以处理5个东西: 1.找出父亲 2.找出深度 3.每一层的节点,存进Ve ...

  6. Luogu P1041 [2003NOIP提高组]传染病控制

    P1041 传染病控制 题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染 ...

  7. 洛谷 P1041 传染病控制

    P1041 传染病控制 题目背景 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范围流行,该国政府决定不惜一切代价控制传染病的蔓延.不幸的是,由于人们尚未完全认识这种传染 ...

  8. [NOIP2003] 传染病控制题解

    问题 F: [NOIP2003] 传染病控制 时间限制: 1 Sec  内存限制: 128 MB 题目描述 [问题背景] 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感染者,为防止该病在蓬莱国大范 ...

  9. P1041 传染病控制——暴力遍历所有相同深度的节点

    P1041 传染病控制 说实话这种暴力我还是头一次见,每次病毒都会往下传染一层: 数据范围小,我们可以直接枚举当前层保护谁就好了: 用vector 记录相同层数的节点:维护已经断了的点: 如果超出最底 ...

随机推荐

  1. 基于Oracle的EntityFramework的WEBAPI2的实现(一)——准备工作

    目前在.net的范围内,好的而且方便的ORM的真的不是很多,与VS集成方便的也就当属EntityFramework(以下简称EF,不知道为什么,总EF这个缩写好不专业).但是,好多公司使用的又是ORA ...

  2. DeepLearning4J 环境搭建【转】

    深度学习Deeplearning4j eclipse 开发环境搭建 eclipse设置deeplearning4j开发环境:手动添加jar包 https://deeplearning4j.org/cn ...

  3. mybatis 面试

    1.接口绑定有几种实现方式,分别是怎么实现的? 接口绑定有两种实现方式,一种是通过注解绑定,就是在接口的方法上面加上 @Select@Update等注解里面包含Sql语句来绑定, 另外一种就是通过xm ...

  4. Charles 协助解决 metaweblog 排序问题

    Charles 是 http代理抓包工具,可有效用于手机客户端网络抓包,详见Charles安装说明.这里使用使用Charles的请求转发功能调试metaweblog的最近博文排序功能. 由于OpenL ...

  5. C#String地址、拼接性能学习

    String类型不可变.定义string变量时会在堆上分配存储空间,而对该变量进行值变更时会重新分配一个存储空间,且保留原存储空间. 测试思路:获取string类型变量值变更前后的存储空间地址,判断地 ...

  6. ElasticSearch读取查询结果(search)

    本文转载自:http://blog.csdn.net/wangxiaotongfan/article/details/46531729?locationNum=6 在es中所有的查询结果都会保存在Se ...

  7. bzoj 1023: [SHOI2008]cactus仙人掌图 2125: 最短路 4728: 挪威的森林 静态仙人掌上路径长度的维护系列

    %%% http://immortalco.blog.uoj.ac/blog/1955 一个通用的写法是建树,对每个环建一个新点,去掉环上的边,原先环上每个点到新点连边,边权为点到环根的最短/长路长度 ...

  8. MySQL重启端口被占用处理

    1,查看日志的ERROR 2018-05-23T01:26:59.230382Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set. 201 ...

  9. 第一个PyQt5窗口

    1.使用pycharm,生成UI文件 右键->External Tools->QtDesigner 选择Main Window创建一个窗体,从右边拖动组件到窗体上,保存路径到自己的工程目录 ...

  10. BIOS设置图解教程-看完就没有不明白的了

    BIOS(基本输入/输出系统)是被固化在计算机CMOS RAM芯片中的一组程序,为计算机提供最初的.最直接的硬件控制.BIOS主要有两类∶AWARD BIOS和AMI BIOS.正确设置BIOS可大大 ...