模拟32 题解

A. chinese

要求的答案是所有情况总的炼字个数。

观察到题中k的范围比较小,所以对k下手。

枚举炼字的大小,限制与它同一行同一列的数的大小,其它数随便选就可以了。

直接快速幂,$O(klogmod)$可过。

写的帅一点,弄个线性筛,直接推一些东西,复杂度就变成$O(\frac{klogmod}{lnk})$了,可以近似认为$O(k)$

 

B. physics

正向处理比较难搞,因为答案会不断变小,无法确定下一个答案到底在哪里。

离线读入所有修改,时光倒流处理答案。

好处是答案只会不断变大,也就是说可以直接取$max$。

处理方式是:

维护出$n^2$个点向上向下最多延伸的1的个数,分别计为$up,down$。

如果指定某一行,指定答案的大小,可以用单调队列$O(n)$检验是否合法。

对于每次修改,影响的只有一列上的数的$up,down$。

对于每次修改,如果答案会被更新,也就一定会被修改所在行能计算出的最优答案更新。

记录答案是多少,因为单调不降,直接不断尝试更新就可以了。

 

 

 

C. chemistry

期望dp,意思大概是维护1~k次方的期望值,然后就能dp了??

不会做。

转载于:https://www.cnblogs.com/skyh/p/11451697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值