P5522 [yLOI2019] 棠梨煎雪

有完整代码的版本 - My Blog

题意

给定 m m m 个长度为 n n n 01 01 01 串。存在某些位置为 ?,每个 ? 独立,既可以取 0 0 0,也可以是 1 1 1.

维护 q q q 次操作,每次操作可能为:

  • 区间查询:查询有多少个只包含 01 01 01 的串 s s s 满足:存在一种对 ? 的赋值方法,使得区间内的每个 01 01 01 串都能与 s s s 完全匹配。
  • 单点修改:把第 i i i 个串替换为给定的新串。

1 ≤ m ≤ 1 0 5 , 1 ≤ q ≤ 1 0 6 , 1 ≤ n ≤ 30 1\leq m\leq 10^5, 1\leq q\leq 10^6, 1\leq n\leq 30 1m105,1q106,1n30.

分析

区间查询 + + + 单点修改 ⟹ \Longrightarrow 线段树

主要问题在:如何处理对 [ l , r ] [l, r] [l,r] 进行的查询操作。

若区间中存在两个串 s i , s j s_i, s_j si,sj,存在 k k k 使得 s i [ k ] s_i[k] si[k] s j [ k ] s_j[k] sj

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值