Logo Fee_cle6418的博客

博客

InfOJ Beginner Round 1 题解

2023-04-03 21:52:32 By Fee_cle6418

A

直接输出 $90-x$ 即可,注意整形溢出,要开 long long。

B

答案为 $(1+p^{a_1})(1+p^{a_2})(1+p^{a_3})\dots(1+p^{a_n})$。

理解方式:

  • 加入一个重量为 $k$ 的物品后,可以不放入背包(价值和不变),可以放入背包(价值和乘上 $p^k$),所以应该乘上 $(1+p^k)$。
  • 在生成函数角度下看,式子是显然的(

C

正难则反,记录积小于等于 $m$ 的方案数。

可以背包,设 $f_{i,j}$ 为前 $i$ 个物品积为 $j$ 的方案数,复杂度 $O(\sum \dfrac{m}{a_i})$。

把相同的 $a_i$ 一块用组合数转移就能严格 $O(n\log n)$。常数很小。

D

直接 dfs,随便乱写就有 75。

考虑精细实现,每个位置保证只试探一次,就能 AC,可以证明操作次数不超过 $2n^2$。

E

一个有趣的 trick(我自己想出来的)

$O(n\log^2 n)$ 的实现很多,也比较傻逼

直接长剖,对每条链上每个深度开线段树,合并的时候线段树合并就行了,稍微注意下实现就是一个 log 的

评论

baoyunxi
也比较$傻逼$, 这个能不能别骂人啊

发表评论

可以用@mike来提到mike这个用户,mike会被高亮显示。如果你真的想打“@”这个字符,请用“@@”。