传染病控制

思路:

  题目想问的是:

    有一棵树;

    对于除1外每个深度可以剪掉一棵子树;

    问最后剩下多少节点;

  题目意思一简单,这个题立马就变水了;

  搜索就能ac;

  数据有为链的情况,按深度为层次搜索的话要记得提前记录答案并return;

来,上代码:

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;#define maxn 305
#define maxm 90005
#define INF 0x7fffffffint n,m,head[maxn],E[maxm],V[maxm],cnt,ans=INF,dep[maxn];
int l[maxn],r[maxn],size[maxn],map[maxn][maxn],deepest;bool if_[maxn];inline void in(int &now)
{char Cget=getchar();now=0;while(Cget>'9'||Cget<'0') Cget=getchar();while(Cget>='0'&&Cget<='9'){now=now*10+Cget-'0';Cget=getchar();}
}inline void edge_add(int u,int v)
{E[++cnt]=head[u],V[cnt]=v,head[u]=cnt;E[++cnt]=head[v],V[cnt]=u,head[v]=cnt;
}void pre(int now,int fa,int deep)
{deepest=max(deep,deepest),dep[now]=deep;map[deep][++size[deep]]=now,l[now]=++cnt;for(int i=head[now];i;i=E[i]){if(V[i]==fa) continue;pre(V[i],now,deep+1);}r[now]=cnt;
}void dfs(int now,int ans_)
{if(ans_>=ans) return ;if(now==deepest){ans=ans_;return ;}int pos=-1;for(int i=1;i<=size[now+1];i++) if(!if_[l[map[now+1][i]]]) pos++;if(pos==-1){ans=min(ans,ans_);return ;}for(int v=1;v<=size[now];v++){if(if_[l[map[now][v]]]) continue;for(int i=head[map[now][v]];i;i=E[i]){if(dep[V[i]]>dep[now]&&!if_[l[V[i]]]){for(int j=l[V[i]];j<=r[V[i]];j++) if_[j]=true;dfs(now+1,ans_+pos);for(int j=l[V[i]];j<=r[V[i]];j++) if_[j]=false;}}}
}int main()
{in(n),in(m);int u,v;while(m--){in(u),in(v);edge_add(u,v);}cnt=0,pre(1,0,1),dfs(1,1);cout<<ans;return 0;
}

转载于:https://www.cnblogs.com/IUUUUUUUskyyy/p/6757892.html

AC日记——传染病控制 洛谷 P1041相关推荐

  1. AC日记——中位数 洛谷 P1168

    题目描述 给出一个长度为N的非负整数序列A[i],对于所有1 ≤ k ≤ (N + 1) / 2,输出A[1], A[2], -, A[2k - 1]的中位数.[color=red]即[/color] ...

  2. AC日记——魔方 洛谷 P2007

    魔方 思路: 模拟: 代码: #include <cstdio> #include <cstring> #include <iostream> #include & ...

  3. AC日记——独木桥 洛谷 p1007

    题目背景 战争已经进入到紧要时间.你是运输小队长,正在率领运输部队向前线运送物资.运输任务像做题一样的无聊.你希望找些刺激,于是命令你的士兵们到前方的一座独木桥上欣赏风景,而你留在桥下欣赏士兵们.士兵 ...

  4. AC日记——潜伏者 洛谷 P1071 (模拟)

    题目描述 R 国和 S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历尽艰险后,潜伏于 S 国的 R 国间谍小 C 终于摸清了 S 国军用密码的编码规则: 1. S 国军方内部欲发送的原 ...

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

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

  6. 洛谷 P1041 传染病控制

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

  7. [AC自动机][dfs] 洛谷 P2444 病毒

    题目描述 二进制病毒审查委员会最近发现了如下的规律:某些确定的二进制串是病毒的代码.如果某段代码中不存在任何一段病毒代码,那么我们就称这段代码是安全的.现在委员会已经找出了所有的病毒代码段,试问,是否 ...

  8. 洛谷-DFS-1101-单词方阵-个人AC题解及公共题解的笔记

    先上自己AC代码(博主这个代码修改过多次,只因代码长度过长) #include<bits/stdc++.h> using namespace std; #define MAXN 102 i ...

  9. 洛谷P1914题解——(本地测试AC但是交题爆零全WA)使用getchar();

    本题最大的坑在于: windows环境下的换行符为\r\n,linux环境的换行符为\n. 我们再来看看洛谷的部分OJ判题机数据和机制 常见"我在本地/xxOJ AC了.洛谷却不过" ...

最新文章

  1. PowerShell 收集计算机相关信息
  2. html修改图片宽度高度,HTML基础 img width height 设置显示图片的高度和宽度
  3. 制作巴士电台彩蛋一枚
  4. C++工作笔记-根据父类指针获取子类类型(或不同的对象)
  5. 试用阿里开源的Arthas小记
  6. 倒计时器c语言,在线倒计时器
  7. SQL注入之注入检测总结
  8. linux低级格式化工具下载,U盘低格工具(Rmprepusb)
  9. 2022年要知悉的9大互联网前沿科技
  10. 2022蓝桥杯——砍竹子
  11. 工程机械租赁行业大有可为,如何不让售后服务拖后腿?
  12. AWFWD改进后的融合算法
  13. 单细胞测序流程(九)单细胞的GO圈图
  14. 北航计算机组成原理课程设计-2020秋 【系列完结】Verilog或ISE高级特性与自动化测试
  15. 安装部署docker
  16. Scala之sorted排序的使用
  17. 乘法表输出及其扩展(附带部分代码书写习惯) C++实现
  18. 关于openCV安装配置最为详尽的一篇文章
  19. 迷你计算机可玩游戏,迷你电脑小主机打游戏可还行?
  20. CSS固定格式-小垒

热门文章

  1. jquery操作mysql_使用jQuery从数据库访问对象
  2. 沈航计算机复试刷人,过来人的血泪教训:复试被刷原因大盘点
  3. qt获取当前系统音量值_Qt编写自定义控件50-迷你仪表盘
  4. docker 离线安装 mysql_Oracle数据库之docker 离线环境安装oracle
  5. opencv可以在linux上运行,linux上 安装并 运行opencv
  6. Solr 中遇到的问题
  7. 根据xml 文件生成 xsd文件 以及相关测试方法
  8. ios技术篇-CoreData
  9. python括号配对问题_使用Python的栈实现括号匹配算法
  10. 通过分离dataSource 让我们的code具有更高的复用性.