题目链接:...

思路:

优化搜索顺序,用DFS按照bfs的思想,从每一层开始搜索,枚举删边。

对于分层,dfs预处理一下就好了。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define R register
#define ll long long int
using namespace std;
const int N=1015;
struct E{int nxt,to;
}e[N];
int n,p,num,ans=0x3f3f3f3f,shen,head[N],dep[N],ren[N][N],f[N],tim[N],flag[N];
inline void add(R int u,R int v){e[++num].nxt=head[u];e[num].to=v;head[u]=num;
}
inline void dfs1(R int pos,R int fa){dep[pos]=dep[fa]+1;shen=max(shen,dep[pos]);f[pos]=fa;ren[dep[pos]][++tim[dep[pos]]]=pos;//当前深度  第几个  是什么for(R int i=head[pos];i;i=e[i].nxt){R int v=e[i].to;if(v!=fa)dfs1(v,pos);}
}
inline int check(R int depth){for(R int j=1;j<=tim[depth];++j)if(flag[f[ren[depth][j]]])return 0;return 1;
}
inline void dfs(R int depth,R int tot){//深度  第几个if(tot>=ans)return;if(check(depth)){ans=min(ans,tot);return;}for(R int j=1;j<=tim[depth];++j){if(flag[f[ren[depth][j]]]){flag[ren[depth][j]]=1;++tot;}}for(R int i=1;i<=tim[depth];++i){//枚举删边if(flag[f[ren[depth][i]]]){flag[ren[depth][i]]=0;--tot;dfs(depth+1,tot);flag[ren[depth][i]]=1;++tot;}}for(R int j=1;j<=tim[depth];++j)if(flag[f[ren[depth][j]]])flag[ren[depth][j]]=0;
}
int main(){scanf("%d%d",&n,&p);for(R int i=1;i<=p;++i){R int u,v;scanf("%d%d",&u,&v);add(u,v);add(v,u);}dfs1(1,0);flag[1]=1;dfs(2,1);if(ans==0x3f3f3f3f)printf("1");elseprintf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/sky-zxz/p/9842747.html

[NOIP2003]传染病控制题解相关推荐

  1. vijos 1106 NOIP2003 提高组 侦探推理 题解

    [原题] P1106侦探推理 Accepted 标签: [显示标签] 描述 明明同学最近迷上了侦探漫画<柯南>并沉醉于推理游戏之中,于是他召集了一群同学玩推理游戏.游戏的内容是这样的,明明 ...

  2. P1041 [NOIP2003 提高组] 传染病控制

    题目背景 本题是错题,后来被证明没有靠谱的多项式复杂度的做法.测试数据非常的水,各种玄学做法都可以通过,不代表算法正确.因此本题题目和数据仅供参考. 近来,一种新的传染病肆虐全球.蓬莱国也发现了零星感 ...

  3. [NOIP2003] 提高组 洛谷P1041 传染病控制

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

  4. 信息学奥赛一本通 1925:【03NOIP普及组】麦森数 | OpenJudge NOI 4.4 1708:麦森数 | 洛谷 P1045 [NOIP2003 普及组] 麦森数

    [题目链接] ybt 1925:[03NOIP普及组]麦森数 OpenJudge NOI 4.4 1708:麦森数 洛谷 P1045 [NOIP2003 普及组] 麦森数 [题目考点] 1. 高精度 ...

  5. 信息学奥赛一本通 1924:【03NOIP普及组】栈 | 洛谷 P1044 [NOIP2003 普及组] 栈

    [题目链接] ybt 1924:[03NOIP普及组]栈 洛谷 P1044 [NOIP2003 普及组] 栈 [题目考点] 递推.递归 栈 [解题思路]:一维递推 设数组a,a[i]表示i个数组成的数 ...

  6. [JS][dfs]题解 | #迷宫问题#

    题解 | #迷宫问题# 题目链接 迷宫问题 题目描述 定义一个二维数组 N*M ,如 5 × 5 数组下所示: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 1, 1 ...

  7. [JS][dp]题解 | #打家劫舍(一)#

    题解 | #打家劫舍(一)# 题目链接 打家劫舍(一) 题目描述 描述 你是一个经验丰富的小偷,准备偷沿街的一排房间,每个房间都存有一定的现金,为了防止被发现,你不能偷相邻的两家,即,如果偷了第一家, ...

  8. [JS]题解 | #魔法数字#

    题解 | #魔法数字# 题目链接 魔法数字 题目描述 牛妹给牛牛写了一个数字n,然后又给自己写了一个数字m,她希望牛牛能执行最少的操作将他的数字转化成自己的. 操作共有三种,如下: 在当前数字的基础上 ...

  9. [JS]题解 | #岛屿数量#

    题解 | #岛屿数量# 题目链接 岛屿数量 题目描述 时间限制:1秒 空间限制:256M 描述 给一个01矩阵,1代表是陆地,0代表海洋, 如果两个1相邻,那么这两个1属于同一个岛.我们只考虑上下左右 ...

最新文章

  1. mvn打包的POm文件
  2. DrawerLayoutDemo【侧边栏(侧滑菜单)简单实现】
  3. 【ESP8266】使用ESP8266 NONOS SDK的JSON API
  4. CSS3 选择器(转)
  5. Elasticsearch用例:全文搜索
  6. linux关闭4750 端口,【ubuntu分享帖】acer 4750G ubuntu安装后的一些设置
  7. HDU-1686Oulipo(kmp)
  8. Unity3D教程:尽量避免使用foreach
  9. 关于windows CE Platform Builder中模拟器的限制
  10. 分组 php库,纯真ip数据库查询的php实现(补充分组查询)
  11. 科研热点|官宣!2022年JCR分区和影响因子发布时间确定!
  12. linux udp 端口 抓包,Linux系统-tcpdump常用抓包命令
  13. JavaEE Day14 ServletHTTPRequest
  14. 分分钟带你学会DNS、WEB、DHCP服务器的搭建
  15. Xcode 工程清理瘦身
  16. 中科院、MIT等5大专家解读黑瞳:金融业幕后的新一代反欺诈卫士
  17. 如何使用python编程抢京东优惠券 知乎_618!python京东 PC 版抢券程序
  18. 58 招财猫变形 RSA 与变形 BASE64 逆向分析
  19. 复选框 el-checkbox选不上
  20. 解 ACM 题的能力真的代表编程能力吗?

热门文章

  1. php数组有没有类似next方法,PHP 数组current跟next用法
  2. mysql免安装出现1067_mysql,免安装,1067错误
  3. oracle 根据用户备份,Oracle基于用户的备份及恢复
  4. ios html gif 显示,显示gif时出现巨大的内存使用Swift iOS
  5. # 解析bt文件_BT、磁力链这些词语是什么意思?
  6. 软件测试msf模型,Visual Studio 2010 Ultimate中MSF过程模型的设计
  7. limit实现原理 mysql_解读数据库:深入分析MySQL中事务以及MVCC的实现原理
  8. 算法竞赛入门经典 第五章总结1
  9. linux如何卸载conky,Linux Deepin 15.10.2 下折腾 简单自制的 Conky Conky-manager
  10. python递归查找_[Python]递归查找文件(最简洁)