UOJ Logo saffah的博客

博客

NOI2020美食家,神奇做法

2020-08-20 12:40:01 By saffah

果然是假了……5n²m+k² 的结论是有问题的,虽然循环节长度是 5n,但是第一个循环之前的长度可能有 25n²,感谢 pink_rabbit 指出。

这样的话最坏情况的复杂度是 25n³m+k²,只是评测数据看上去是随机的没有出现这种情况……果然加强版题目也算 abuse 随机性了(

可以在这里提交加强版题目:https://duck.ac/problem/2003

————————以下原文————————

设 $f(u,v,t)$ 表示 $t$ 天从 $u$ 走到 $v$ 的最大权值(无视美食节),这在 $t$ 足够大时是有循环节的,循环节之间是等差数列,循环节长度不会超过 $5n$。

暴力哈希找到这个循环节,预处理每个 $u$ 出发在循环节之前的部分,即可每次 $O(1)$ 求一个 $f(u,v,t)$。

对于有美食节的情况,可以朴素 $k^2$ 来 DP 是否经过每个地方。总时间是 $5n²m+k²$。

https://loj.ac/submission/911370

不知道有没有优美的方法能把这个 $k^2$ 也干掉……

评论

pink_rabbit
我考场就写的这个做法,这个做法是假的
pink_rabbit
虽然当 $t$ 充分大的时候循环节长度不超过 $5 n$,但是进入循环节的,循环前的部分可能会达到 $\mathcal O ({(5 n)}^2)$ 级别,如果暴力时上限只到 $\mathcal O (5 n)$ 应该可以被卡。为了维持做法的高效,可以结合原做法的矩阵倍增,到达 $\mathcal O ({(5 n)}^2)$ 级别后再使用这个做法?
J_B_Y
进入循环前的长度为啥是$(5n)^2$啊,我觉得是$10n$啊
hngj
华纳国际娱乐

发表评论

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