ZROI CSP-S失恋测(1)

传送门

写在前面:为了保护正睿题目版权,这里不放题面,只写题解。


“怎么大家一个暑假不见都变菜了啊。”——蔡老板


  • A

考虑一个\(nk^2\)的dp,按\(w_i\)排序,则每个组长只能匹配排在他前面的组员,每个组员也只能等待排在他后面的组长。

\(f_{i,j,l}\)表示前\(i\)个人,配好了\(j\)对,有\(k\)个组员等待匹配的最优解,直接dp即可。

注意到\(2k>n\)时一定无解,因此\(O(nk^2)=O(nk\cdot\min(n,k))\leq O(nk\sqrt{nk})\)

另外一种做法是状态中不记录配好了多少对,而是直接wqs二分出每配成一对减免的补偿值,使得最优情况下恰好配成\(k\)对,时间复杂度\(O(nk\log a)\)

无论哪种方法都需要注意排序时\((p_i=)2<3<1\)(否则就会wa飞)


  • B

比较显然的一点是行和列是独立的。可以分别哈希出每行、列代表的字符,从而算出按照行、列划分时的答案,相乘即可。

由回文串的性质可以证明(猜出),\([l,r]\)可能成为答案的充要条件是\([1,r]\)\([l,n]\)均能成为答案。两种是对称的,分别计算即可。

\(\text{manacher}\)(二分哈希)算出以每个空隙为对称中心的最长回文串,假设已经算出\(j\in[1,i-1]\)的每一个\([j,n]\)是否可行,\([i,n]\)可行的充要条件是存在一个可行的\([k,n]\)使得以\((i-1,i)\)为对称中心的最长回文串可以覆盖到\(k\),显然这个\(k\)取合法的最大值最优。


  • C

两种部分分都很好做,维护一个懒标记即可。

考虑整体\(+1\)反映到二进制上的表现。设\(x\)的二进制位从低到高分别为\(a_0,a_1,…,a_{29}\),则\(+1\)后的表现为:找到最低的\(i\),使得\(a_0,a_1,…,a_{i-1}=1,a_i=0\),将\(a_0,…,a_i\)全部翻转。

如果将每个数倒着插入trie中(即从低位到高位插入),那么每次都是交换一条从根到叶子的链的每个节点的左右儿子,根据异或懒标记决定这条链的走向即可。

转载于:https://www.cnblogs.com/suwakow/p/11442716.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值