/*codevs 1091 搜索 几个月之前写的70分 今天又写了一遍 并且找到了错误 */
#include<cstdio>
#include<vector>
#define maxn 310
using namespace std;
int n,m,num,head[maxn],fa[maxn],ans=0x7fffffff,f[maxn];
vector<int>G[maxn],Son[maxn];
struct node{
int v,pre;
}e[maxn*];
void Add(int from,int to){
num++;e[num].v=to;
e[num].pre=head[from];
head[from]=num;
}
void Build(int now,int from,int dep){
G[dep].push_back(now);fa[now]=from;
for(int i=head[now];i;i=e[i].pre){
int v=e[i].v;
if(v!=from){
Son[now].push_back(v);
Build(v,now,dep+);
}
}
}
void Dfs(int c,int sum){//当前深度 已经挂掉几个
int num=;
if(sum>=ans)return;
for(int i=;i<G[c].size();i++){
int x=G[c][i];
if(f[x]==)num++;//会挂掉的人数
}
if(num==){//没有人会挂掉 停止搜索
ans=min(ans,sum);return;
}
for(int i=;i<G[c].size();i++){
int x=G[c][i];
if(f[x]){
for(int k=;k<Son[x].size();k++)
f[Son[x][k]]=;
}
}
for(int i=;i<G[c].size();i++){
int x=G[c][i];if(f[x])continue;
for(int k=;k<Son[x].size();k++)
f[Son[x][k]]=;
f[x]=;Dfs(c+,sum+num-);f[x]=;
for(int k=;k<Son[x].size();k++)
f[Son[x][k]]=;
}
for(int i=;i<G[c].size();i++){//回溯 回溯 回溯 要 彻底
int x=G[c][i];
if(f[x]){
for(int k=;k<Son[x].size();k++)
f[Son[x][k]]=;
}
} }
int main()
{
freopen("epidemic.in","r",stdin);
freopen("epidemic.out","w",stdout);
scanf("%d%d",&n,&m);
int u,v;
for(int i=;i<=m;i++){
scanf("%d%d",&u,&v);
Add(u,v);Add(v,u);
}
Build(,,);Dfs(,);
printf("%d\n",ans);
return ;
}

noip 2003 传染病控制(历史遗留问题2333)的更多相关文章

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

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

  2. 『练手』005 Laura.SqlForever历史遗留 的 架构思想缺陷

    005 Laura.SqlForever历史遗留 的 架构思想缺陷 我们 比较一下 Laura.WinFramework 和 Laura.XtraFramework 的差异: Laura.WinFra ...

  3. HTML的历史与历史遗留问题

    1. <style type="text/css"> 从前,HTML的设计者认为以后应该还会有其他样式,不过如今我们已经醒悟,事实表明,完全可以只使用<style ...

  4. 如何应对HR小姐姐的千年历史遗留问题:你为什么从上家公司离职?

    最近找我询问面试问题的学生比较多,而且问的问题基本上都是课堂上讲过的,好吧,在此心疼自己三秒钟. 那么今天就为各位宝宝们整理一下,如何优雅的回复HR小姐姐的这个千年历史遗留问题:你为什么从上家公司离职 ...

  5. NOIP 2003解题报告

    第一题(神经网络): 题目大意,给出一些点,每个点都有2个值,c和u,给出一些有向边,权值为w.入度为0的点的c已知,其它点的c未知,每个入度不为0的点node的c等于sum(c[k]*w[k][no ...

  6. java 泛型历史遗留问题

    Map<String,Integer> hashMap = new HashMap<String,Integer>(); hashMap.put(); // hashMap.p ...

  7. 为什么使用剪切板时都用GlobalAlloc分配内存(历史遗留问题,其实没关系了)

    我在使用剪切板时,发现通用的都是使用GlobalAlloc来分配内存,我就想不是说在Win32中GlobalAlloc和LocalAlloc是一样的那为什么不用LocalAlloc呢,原谅我的好奇心吧 ...

  8. niop 2003 传染病控制 (哎呀我氧化钙 坑了好久的搜索题)

    /* 我觉得挺对的啊 实在是考虑不到有什么情况会判不了 70分 就这样吧 - - */ #include<iostream> #include<cstdio> #include ...

  9. 【NOIP 2003】 加分二叉树

    [题目链接] 点击打开链接 [算法] 树形DP即可 [代码] #include<bits/stdc++.h> using namespace std; #define MAXN 50 in ...

随机推荐

  1. objective-C: nonatomic retain copy assgin 等属性详解

    http://my.oschina.net/u/728866/blog/90798 property,可以提供的功能有:提供成员变量的访问方法的声明.控制成员变量的访问权限.控制多线程时成员变量的访问 ...

  2. python 运行 hadoop 2.0 mapreduce 程序

    要点:#!/usr/bin/python 因为要发送到各个节点,所以py文件必须是可执行的. 1) 统计(所有日志)独立ip数目,即不同ip的总数 ####################本地测试## ...

  3. bootstrap datepicker时间插件显示位置不对

    bppystrap-datetimepicker.min.js中,修改如下:将原来的        if(!b(this.element)){l=l+document.body.scrollTop}改 ...

  4. Rectangle and Square(判断正方形、矩形)

    http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=42#problem/D 改了N多次之后终于A了,一直在改判断正方形和矩形那,判断 ...

  5. 最大流算法---Edmond-Karp

    这个算法是基于FF方法,就是通过不断求残余网络的增广路来增广流量,直到找不到增广路为止.注意:每次找到增广路以后都要更新原网络.EK算法通过BFS寻找源S到汇T的一条最短路径,因此时间复杂度是O(VE ...

  6. bzoj 1188 [HNOI2007]分裂游戏(SG函数,博弈)

    1188: [HNOI2007]分裂游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 733  Solved: 451[Submit][Status ...

  7. vijosP1053 Easy sssp

    vijosP1053 Easy sssp 链接:https://vijos.org/p/1053 [思路] SPFA. 题目中的陷阱比较多,但是只要中规中矩的写SPFA诸如:s与负圈不相连,有重边的情 ...

  8. NGRC远程控制

    这是大三学完计算机网络的课程之后开始写的东西,后来慢慢完善到能用的程度. 界面大概是这样 还有这样 使用Java的好处是不用修改就可以在Mac和Linux上运行(测试过Ubuntu和OS X) 缺点是 ...

  9. ios策略模式应用

    策略模式应用大量应用于解决巨型switch-case  if-else..... 具体使用方法 : 策略基类(BaseStrategy)包含一个虚算法,所有子类实现虚算法 容器类含有一个指向策略基类的 ...

  10. mysql定时器三部曲

    1.查看事件状态 SELECT @@event_scheduler;  或    show VARIABLES LIKE '%sche%'; 2.创建存储过程 示例一批量新增: delimiter | ...