1455G Forbidden Value(数据结构优化dp+启发式合并)

1455G Forbidden Value(数据结构优化dp+启发式合并)

Educational Codeforces Round 99 (Rated for Div. 2)

G. Forbidden Value

题面Forbidden Value

题意:给一个初始值为 0 0 0 的变量 x x x 以及一段只包含 s e t 、 i f 、 e n d set、if、end setifend 的简易代码段,代码 “ s e t   y   v set~y~v set y v” 表示将 x x x 赋值为 y y y,或者花费 v v v 的代价不执行该语句,代码块 i f   y   . . .   e n d if~y~...~end if y ... end 为条件语句块,当 x x x 的值等于 y y y 时才会进入该代码块,代码块可以嵌套。在程序的运行过程当中一旦 x x x 的值变成了 s s s 就会立马崩溃,现在问至少要花费多少的代价才能让程序正常跑完。

范围 1 ≤ n ≤ 2 e 5 , 1 ≤ s ≤ 2 e 5 , 0 ≤ y ≤ 2 e 5 , 1 ≤ v ≤ 1 e 9 1 \le n \le 2e5, 1 \le s \le 2e5, 0 \le y \le 2e5, 1 \le v \le 1e9 1n2e5,1s2e5,0y2e5,1v1e9

分析: 可以先考虑基本的 d p dp dp d p i j dp_{ij} dpij 表示执行完第 i i i 条语句后 x x x 的值为 j j j 所需要的最小代价。若代码段中只存在 s e t set set 语句的话这个 d p dp dp 很好写,只需要注意进行离散化。现在考虑 i f   . . .   e n d if~...~end if ... 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值