2023.3.7 闲话

今天把博客的字体优先级改了一下,现在应该是上不了 fonts.googleapis.com 的 Windows 一般会匹配上 Microsoft YaHei,Linux 上一般会匹配 sans-serif,MacOS 上一般会匹配 PingFang SC(这个我没条件测试).

上得了 fonts.googleapis.com 的话当然是匹配 Noto Serif SC .

别的情况应该没了,我觉得不会有匹配上 Times New Roman 的吧!


SoyTony 于 2023.1.27 对吾等韶身降下神言:【闲话】2023.1.27 斐波那契数列一个性质及推广,我简单落实一下 .

注意看一下 Lemma 3,这是以下内容的理论基础 .

(免责声明:这个不是春季赛游记里说的那个学术部分)


SoyTony 的神力 I

话说上古时期,SoyTony 创世时顺便创造了 SoyTony 数列 f,她由两个参数 x,y 描述:

f(n)={0n=01n=1xf(n1)+yf(n2)n>1

SoyTony 要试试 SoyTony 数列的威力,便开始在一棵树上施展神力 .

对于一棵 n 个点的带点权有根树,点 u 的点权是 au,每次 SoyTony 施展神力时会选定两个点 u,v,然后对于每个 u 子树内的点 x,将 axax+f(dist(x,v)).

为了勘测 SoyTony 数列的效果,SoyTony 有时会抛出若干询问,祂选定一个点 u 并询问 u 子树内所有点的点权和,对 109+7 取模 .

1n,q106q 是操作次数 .

Solution:

对于 SoyTony 施展神力的情况讨论一下:

  • vu 子树内:倍增求 u 靠近 v 的那个儿子 s,那么对于 u 子树内的 s 的子树和子树补分别处理即可 .
  • v 不在 u 子树内:就是 axax+f(dep(x)dep(u)+dist(u,v)) .

根据以上讨论和 DFS 序的基本转换以及一些抽象可以把问题变得漂亮一点:

维护一个序列 {an},有一个固定序列 {b}q 次操作:

  • change l r k,对于所有 i[l,r],让 aiai+f(bi+k) .
  • query l r,求 i=lrai .

这个就好做很多了,根据 Lemma 3,可以得知 f(bi+k)=yf(bi)f(k1)+f(bi+1)f(k),由于 bi 是定值所以只需要维护每个点上 f(bi)f(bi+1) 的系数,这个可以线段树完成 .

query 维护矩阵乘法或者扩域就完了 .

这样复杂度就是 Θ((n+q)logn) 了,解决了 .

SoyTony 也是给出了很高的评价:


SoyTony 的神力 II

交互 .

后台有一个二阶常系数递推序列 f(n),由两个参数 a,b 描述:

f(n)={0n=01n=1af(n1)+bf(n2)n>1

有两个公开的正整数 p,t,你可以询问交互库不超过 t 次,每次你可以给交互库发送一个整数 n,交互库会回答你 f(pn)mod998244353f(pn+1)mod998244353 的值,你需要找到后台的 ab .

保证 0a,b<998244353 .

Solution:

四次询问!SoyTony 大神做到了三次我也不知道咋整的!(UPD. SoyTony 大神的做法目前 OI 界还没有引入,我们众韶身不可能学的会的

首先考察 f(2n)=bf(n)f(n1)+f(n)f(n+1),选一个好的 n 然后两次询问分别查出来 f(n),f(n+1)f(2n) .

这样根据递推式 f(n+1)=af(n)+bf(n1),可以把 bf(n1)f(n),f(n+1),a 表出,这样原式可以看成关于 a 的一元一次方程,即可解出 a .

再选一个好的 m,考察 f(n+m)=bf(n)f(m1)+f(n+1)f(m),那么可以两次询问查出来 f(m1),f(m),f(n+m),解方程可以得出 b .

这样就四次询问解决了!如果没逆元可以多来几轮我相信一定会有的!虽然这样就不是四次询问了。

posted @   yspm  阅读(109)  评论(4编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
😅​
点击右上角即可分享
微信分享提示