题解 HYOI#8 每题得分%100相加(确信) version 1

HYOI #8 题解

传送门

定位是普及组偏下,偏套路,技巧较多。

segeasy

判断:\(\left\lceil\sqrt{l+k}\right\rceil\leq\left\lfloor\sqrt {r+k}\right\rfloor.\)

或者二分答案。

Bonus:最多能进行多少次操作?(这个题就是 seghard)

peachtree

\[\begin{aligned} \text{原式}&=\sum\limits_{i=1}^p (p-i)a_i+\sum\limits_{i=p+1}^n(i-p)a_i\\ &=p\sum\limits_{i=1}^pa_i-\sum\limits_{i=1}^pia_i+\sum\limits_{i=p+1}^nia_i-p\sum\limits_{i=p+1}^na_i \end{aligned}\]

于是可以预处理 \(s_i=\sum_{j=1}^ia_j\)\(t_i=\sum_{j=1}^ija_j\),直接计算。\(p\notin[1,n]\) 也是类似的,总之就是把绝对值拆掉。

或者预处理 \(p=1,2,\cdots,n\) 的答案,对于没算过的加一下多余的贡献。

细节比较多,自己想想。

fromcp

将这个排列的反串接在排列前面,则新的序列的上升子序列个数除以二即为所求。这样每个方案都在两个转向的地方算了两次。

上升子序列个数:\(f_i=\sum_{j<i,a_j<a_i}f_j\),答案是 \(\sum_i f_i\)

说一下模意义除以二是什么,这里直接说结论:\(499122177x\) 对着 \(998244353\) 取模就是 \(x/2\) 的结果。

Bonus:\(n\leq 10^5\)

ecosystem

\(t=\sqrt k\),构造:

  • \(t\) 个点连向点 \(p\),点 \(p\) 又连向 \(t\) 个另外的点。
  • \(l=k-t^2\)。点 \(q\) 连向 \(l\) 个另外的点。

最后随意地将两朵菊花的尾部连起来即可。

Bonus:不限制 \(m-n\) 的值,但是 \(k\leq 10^{18}\)

posted @ 2023-08-25 11:48  caijianhong  阅读(39)  评论(0编辑  收藏  举报