跳到内容
Walter_Fang's Blog
返回

题解:P10893 城市化发展委员会

编辑页面

笑点解析:昨天写完没点申请题解,今天题解申请通道关了。

看到很多大佬写了 STL 和单调数据结构做法,这里给个思维含量颇高的数学做法。

题目描述

规定一个序列为“安全的”当且仅当这个序列的所有前缀和为正数。

给定一个长度为 nn 的序列 AiA_i,执行 nn 次以下操作得出新的数列 Ai+1A_{i+1}

Ak+1Ak\dfrac{|A_{k+1}|}{|A_k|},答案对 998244353998244353 取模。

思路解析

设所求答案 f(i)=Ai+1Aif(i)=\dfrac{|A_{i+1}|}{|A_i|}g(i)=j=1iAijg(i)=\sum^i_{j=1}A_{ij},易证 f(i)=g(i)f(i)=g(i)。 于是 f(i+1)=g(i+1)=f(i)g(i)=f(i)2f(i+1)=g(i+1)=f(i)g(i)=f(i)^2。所以 f(k)=g(0)2kf(k)=g(0)^{2^k}。写个快速幂就行了,理论上可以用费马小定理再优化一下,没试。

不放代码。


编辑页面
分享这篇文章:

上一篇
题解:AT_abc368_c [ABC368C] Triple Attack
下一篇
AT_abc366_e Manhattan Multifocal Ellipse 题解