题目要求:
2. 病毒肆虐 【问题描述】 蓝星上遇到了千年一遇的病毒肆虐,现在科学家们需要研制新型的疫苗来对抗这 一病毒的传播。在研制疫苗的过程中,病毒也在不断变异,现在需要你来参与研 究病毒变异和疫苗研制的工作。 现在把病毒的变异路线抽象为一棵树,由原始病毒开始变异,结点之间路径的权 重有三个,分别为病毒沿这一路径进行变异所需要的时间,科学家沿这一路径研 制疫苗所需要的时间以及在疫苗研制成功后病毒沿这一路径变异所需要的时间, 而每个变异体都有三个属性,分别是潜伏期、传染能力以及致死率,众所周知, 当病毒有超长潜伏期、超强传染能力以及极高致死率时,蓝星将面临灭顶之灾。
现在希望你能编写程序来完成任务。要求如下:
【基本要求】
1、给定两个病毒的编号,找出一个变异体,这个变异体是这两个病毒在分化之 前的最近公共祖先。
2、若科学家沿某一路径研制疫苗时间比病毒沿某一路径变异所需要的时间短, 则该病毒不会再进行变异。
3、假定所有变异和疫苗研究可以并行进行,即每种病毒在诞生后,经过相应时 间后会变异出其所有孩子结点的病毒(病毒会分头行动,并行变异),假定研制疫 苗不一定需要这种病毒已经出现,请编写程序计算每种变异体的疫苗是否能在该 变异出现前研制成功,若不能,会落后多长时间。
4、对病毒在人群中的传播和变异进行一次沙箱模拟,以天为单位输出,以小时 为每一次迭代的粒度。规则如下:
(1)、潜伏期为整数,以天为单位。
(2)、传染能力为一个实数,即每个感染者每小时会传染多少易感者,为简化 问题,假定感染者之间互相传播也计算在内。