NOIP2003 传染病防治
描述
研究表明,这种传染病的传播具有两种很特殊的性质;
第一是它的传播途径是树型的,一个人X只可能被某个特定的人Y感染,只要Y不
得病,或者是XY之间的传播途径被切断,则X就不会得病。
第二是,这种疾病的传播有周期性,在一个疾病传播周期之内,传染病将只会感染一
代患者,而不会再传播给下一代。
这些性质大大减轻了蓬莱国疾病防控的压力,并且他们已经得到了国内部分易感人群
的潜在传播途径图(一棵树)。但是,麻烦还没有结束。由于蓬莱国疾控中心人手不够,同时也缺乏强大的技术,以致他们在一个疾病传播周期内,只能设法切断一条传播途径,而没有被控制的传播途径就会引起更多的易感人群被感染(也就是与当前已经被感染的人有传播途径相连,且连接途径没有被切断的人群)。当不可能有健康人被感染时,疾病就中止传播。所以,蓬莱国疾控中心要制定出一个切断传播途径的顺序,以使尽量少的人被感染。你的程序要针对给定的树,找出合适的切断顺序。
格式
输入格式
输入格式的第一行是两个整数n(1≤n≤300)和p。接下来p行,每一行有两个整数i
和j,表示节点i和j间有边相连(意即,第i人和第j人之间有传播途径相连)。其中节点
1是已经被感染的患者。
输出格式
只有一行,输出总共被感染的人数。
#include<iostream>
#include<vector>
#include<cstring>
using namespace std;
struct edge{
int f,t;
};
+;
int n,p,node[maxn],flag[maxn],ans=maxn,cs;
vector<edge> b[maxn];
vector<int> GG[maxn];
vector<int> G[maxn];
int calcsize(int x){
node[x]=;
) return node[x];
;i<G[x].size();i++) node[x]+=calcsize(G[x][i]);
return node[x];
}
void dfs1(int n,int f){
){
return;
}
;i<G[f].size();i++){
b[n].push_back((edge){f,G[f][i]});
dfs1(n+,G[f][i]);
}
}
void vis(int x){
flag[x]=;
;i<G[x].size();i++) vis(G[x][i]);
}
void disvis(int x){
flag[x]=;
;i<G[x].size();i++) disvis(G[x][i]);
}
void dfs(int n,int now){
ans=min(ans,now);
if(n>cs){
return;
}
;i<b[n].size();i++){
edge &e=b[n][i];
if(!flag[e.f]){
vis(e.t);dfs(n+,now-node[e.t]);
disvis(e.t);
}
}
}
void bulid(int u,int fa){
int d=GG[u].size();
;i<d;i++){
int v=GG[u][i];
if(v!=fa){
G[u].push_back(v);
bulid(v,u);
}
}
}
int main()
{
int i,j;
cin>>n>>p;
;k<p;k++){
cin>>i>>j;GG[i].push_back(j);GG[j].push_back(i);
}
memset(flag,,sizeof(flag));
bulid(,-);calcsize();dfs1(,);
;i<=maxn;i++){
){
cs=i-;break;
}
}dfs(,n);cout<<ans;
;
}
NOIP2003 传染病防治的更多相关文章
- Catalan数 && 【NOIP2003】出栈序列统计
令h(1)=1, h(0)=1,catalan数满足递归式: h(n)=h(0)*h(n-1)+h(1)*h(n-2)+...+h(n-1)h(0) (n>=2) =C(2n, n)/(n+1) ...
- 卡特兰数 BZOJ3907 网格 NOIP2003 栈
卡特兰数 卡特兰数2 卡特兰数:主要是求排列组合问题 1:括号化矩阵连乘,问多少种方案 2:走方格,不能过对角线,问多少种方案 3:凸边型,划分成三角形 4:1到n的序列进栈,有多少种出栈方案 NOI ...
- CJOJ 1010【NOIP2003】加分二叉树 / Luogu 1040 加分二叉树(树型动态规划)
CJOJ 1010[NOIP2003]加分二叉树 / Luogu 1040 加分二叉树(树型动态规划) Description 设 一个 n 个节点的二叉树 tree 的中序遍历为( 1,2,3,-, ...
- 洛谷 P1045 & [NOIP2003普及组] 麦森数
题目链接 https://www.luogu.org/problemnew/show/P1045 题目大意 本题目的主要意思就是给定一个p,求2p-1的位数和后500位数. 解题思路 首先看一下数据范 ...
- [NOIP2003]栈 题解(卡特兰数)
[NOIP2003]栈 Description 宁宁考虑的是这样一个问题:一个操作数序列,从1,2,一直到n(图示为1到3的情况),栈A的深度大于n. 现在可以进行两种操作: 1.将一个数,从操作数序 ...
- NOIP2003 神经网络(bfs)
NOIP2003 神经网络 题目背景: 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应 ...
- [NOIP2003普及组]麦森数(快速幂+高精度)
[NOIP2003普及组]麦森数(快速幂+高精度) Description 形如2^P-1的素数称为麦森数,这时P一定也是个素数.但反过来不一定,即如果P是个素数,2^P-1不一定也是素数.到1998 ...
- cogs 983. [NOIP2003] 数字游戏
983. [NOIP2003] 数字游戏 ★☆ 输入文件:numgame.in 输出文件:numgame.out 简单对比时间限制:1 s 内存限制:128 MB 题目描述 丁丁最近沉 ...
- cogs 106. [NOIP2003] 加分二叉树(区间DP)
106. [NOIP2003] 加分二叉树 ★☆ 输入文件:jfecs.in 输出文件:jfecs.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 设 一个 n ...
随机推荐
- ASP.NET的POST和GET提交并接收处理返回值
POST方法: 数据提交 /// <summary> /// POST提交数据接收字符json /// </summary> /// <param name=" ...
- activiti自定义流程之自定义表单(一):环境配置
先补充说一下自定义流程整个的思路,自定义流程的目的就是为了让一套代码解决多种业务流程,比如请假单.报销单.采购单.协作单等等,用户自己来设计流程图. 这里要涉及到这样几个基本问题,一是不同的业务需求, ...
- 在一个窗口中显示多个视频,并在每个子窗口左上角显示系统时间,函数cvShowManyImages是改写的
#include <cv.h> #include <highgui.h> #include <stdio.h> #include <stdarg.h> ...
- [物理学与PDEs]书中的错误指出
记号意义: P--Page, 第几页; L--Line, 顺数第几行; LL--Last Line, 倒数第几行. P 64 L 1 ``15)'' should be ``14)''. P 70 L ...
- sublime相关设置
1.设置Sublime Text新标签页打开文件 "open_files_in_new_window": false,
- web性能 部分
雅虎34条提高性能的经验 http://www.cnblogs.com/li0803/archive/2009/09/20/1570581.html 减少http请求 1.尽量合并多个css.js文件 ...
- Centos下使用gitosis配置管理git服务端(转载)
From:http://www.cnblogs.com/ahauzyy/archive/2013/04/08/3043384.html 说明:由于条件有限,我这里使用的是同一台centos的,但教程内 ...
- php 获取时间今天明天昨天时间戳
<?php echo "今天:".date("Y-m-d")."<br>"; echo "昨天:&qu ...
- Bugtags:移动时代首选 Bug 管理系统
Bug 管理系统之重 回想我们每次开启一个新项目,筹备之初,首要之事就是选择一款 Bug 管理系统.市面上有诸多 Bug 管理系统可供选择:Jira.Redmine.Bugzilla 等.这些系统功能 ...
- spring controller中@Value取不到applicationContext.xml中加载配置文件的问题
原因还未查证: http://sunjun041640.blog.163.com/blog/static/256268322014127113844746/ 在使用spring mvc时,实际上是两个 ...