BZOJ4856 病毒感染 [Jsoi2016] dp

正解:区间dp+辅助dp

解题报告:

先放个传送门qwq

然后这题,又是一道看不懂题目的玩意儿:(

大概是语文太差

那就先解释下

其实只是一个点比较难明白就是它港

"假设JYY 进入i村庄并在第二天立即离开(村庄i的疫情并未治愈如果在之后的某一天,JYY 从村庄j前往村庄 k并满足balabala(umm懒得打了QAQ)。那么在之后的日子里JYY只能朝着i村庄前进直到抵达i村庄并立即治愈该村的患者"

然后其实这句话就是说如果你掉头了你就必须把回头的这一路上没治的都治好

昂然后就直接讲正解趴没什么可说的呢qwq

就是开俩dp数组,一个g[i][j]表示从第i个村庄到第j个村庄然后再返回村民最少死伤人数,一个f[i]表示治愈了前i个村庄的时候死亡的最少人数

再可以读入的时候预处理一个sum[i]表示从第一个村庄到第i个村庄的每天死伤人数这样可以之后方便计算

然后就直接考虑转移

首先肯定是处理出g,思考怎么转移

显然你到达村庄i是有俩决策的,你可以选择,救村庄i的人,和先救村庄i+1到村庄j的人再回来救村庄i的人(注意的是这里并不需要必须i+1到j都过去的时候救完蛤!因为我并不care你i+1到j是怎么救的只要你是从i+1到j过去再回来就是了嘛)

因此相应的就有俩结果

一个是,救,那么i+1到j的村庄的病人就都要晚一天治疗,于是就是,

猜你喜欢

转载自www.cnblogs.com/lqsukida/p/9977011.html