2019南昌网络赛

本文深入探讨了竞赛编程中常见的算法题目,包括约瑟夫环、矩阵乘法、字符串匹配等,提供了详细的解决方案和优化思路,如使用SAM、线段树、主席树等数据结构,以及FFT、DP等算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

RankSolvedABCDEFGHI
497/18823/ 9.OØØOØOØØ

O: 当场通过

Ø: 赛后通过

.: 尚未通过

A Enju With math problem

unsolved


B Fire-Fighting Hero

solved by chelly


chelly’s solution

C Hello 2019

upsolved by chelly


chelly’s solution

将字符串倒过来,问题就变成了要201920192019,但是不要201820182018。若只有一个询问,就直接dp就可以了,对于多个询问,可以用线段树维护矩阵乘法。

D Interesting Series

upsolved by chelly


Fn=anF_n=a^nFn=an,那么ans(k)=[xk]∏i=1n(asix+1)ans(k)=[x_k]\prod_{i=1}^n(a^{s_i}x+1)ans(k)=[xk]i=1n(asix+1),现在进行一些数学变换就能得到最后的结果。
至于那个多项式的求法,用分治FFT即可。

E Magic Master

solved by viscaria&chelly


chelly’s solution

问题的关键是给定mmm,求f(n,k)f(n,k)f(n,k),表示nnn个人的约瑟夫环,隔mmm个出队一个,kkk是第几个出队的。
类比于经典的约瑟夫环的做法,求f(n,k)f(n,k)f(n,k)的时候可以整体考虑这轮出去的情况。如下图:
在这里插入图片描述
时间复杂度大概也是O(log⁡mm−1n)=O(ln⁡nln⁡mm−1)O(\log_{\frac{m}{m-1}}n)=O(\frac{\ln n}{\ln \frac{m}{m-1}})O(logm1mn)=O(lnm1mlnn)的。
upd:
m≥2m \geq 2m2时,1m&lt;ln⁡m−ln⁡(m−1)&lt;1m−1\frac{1}{m} &lt;\ln m- \ln (m-1) &lt; \frac{1}{m-1}m1<lnmln(m1)<m11,所以复杂度实际上是O(mln⁡n)O(m\ln n)O(mlnn)的。

F Megumi With String

upsolved by chelly


很容易求出每个本质不同的子串对答案的贡献。
只需要每次在线地用SAM维护新出现地本质不同地字符串即可。对于第iii次加入的字符,SAMSAMSAM上表示新产生的本质不同字符串的结点一定满足endpos={i}endpos=\{i\}endpos={i},满足这个条件的点只有lastlastlast结点。

G Pangu Separates Heaven and Earth

solved by viscaria


viscaria’s solution

签到

H The Nth Item

upsolved by Feynman1999


Feynman1999’s solution

I Yukino With Subinterval

upsolved by chelly


chelly’s solution

b[i]=(a[i]==a[i−1])?a[i]:0b[i]=(a[i]==a[i-1])?a[i]:0b[i]=(a[i]==a[i1])?a[i]:0,那么对于一个询问(l,r,x,y)(l,r,x,y)(l,r,x,y),就相当于找[l+1,r][l+1,r][l+1,r]之间值域在[x,y][x,y][x,y]内的有多少个数字,lll的位置特殊考虑。
这就是个经典的待修改主席树问题,BIT套权值线段树解决。
但这里内存和时间卡的都很紧,需要扣好常数和内存。

upsolved by chelly


chelly’s solution

也可以采取常数比较小的cdqcdqcdq分治,对于询问可以拆成前缀形式。时间作为第一维,下标作为第二维,权值作为第三维,cdqcdqcdq分治套BITBITBIT解决。

Dirty Replay

  • B题:算英雄的答案前,加入了超级源,导致最短路跑错了。WA了2发。
  • E题:没有处理好m>n的情况
  • H题:
  • C题:转移矩阵构造错了,WA了一发
  • D题:没开long double,WA了3发
  • F题:补题的时候没看见n≤998244353n \leq 998244353n998244353,RE了许多发。浅谈睡眠充足的重要性。
  • I题:被卡了空间和时间
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值