2020.07.28【省选B组】模拟 总结
估分:\(50 + 10 + 40 = 90\)
考场:\(50 + 10 + 0 = 60\)
无语了。。。手玩出锅,还能怎样?
\(T1\)
操作\(1、2、4\)都容易用线段树解决。
关键是操作\(3\),区间除法。考场没有想到做法。
其实我们对于一个区间,设最大值为\(A\),最小值为\(B\)。
如果\(⌊A/d⌋−A=⌊B/d⌋−B\),那很容易说明整个区间的修改其实就是全部加上\(⌊A/d⌋−A\)。
所以这时打个标记,不用再递归下去了。
证明
\(T2\)
嘿嘿嘿,推式子直接上暴力,式子什么的最讨厌了。
然而,打表————>得到是个积性函数(记为\(F\)),这\(TM\)真是个人才啊。。。
对于\(50%\)的数据,我们可以考虑像个筛法一样搞出来,我们需要得到\(F[p^k]\)的值。然后我不想口胡了。
这是LZCdalao%%%的证明
然后就这样了,反正我没打(笑
\(T3\)
通过一系列证明,(搞了我1.5h+)
我们发现三个性质:
设\(n=∏(1<=i<=m)a[i]^{b[i]}\),\(a[i]\)为质数。
1.肯定有符合条件的\(x\),为\(x=∏(1<=i<=m)a[i]^{a[i]^{b[i]}-1}\)
首先\(∏(1<=i<=m)(a[i]^{b[i]}-1+1)=n\),然后\(a[i]^{b[i]}-1>=b[i]\)
所以得证。
2.除了4,如果包含二次方质因子则符合条件的\(x\)有无限个。
我们尝试将\(a[i]^{b[i]}\)(为\(n\)的质数)分解为\(a[i]^{b[i]-1}\)和\(a[i]\)
然后我们可以将\(a[i]\)转成另一个数的指数————>\(p^{a[i]-1}\),而\(a[i]^{b[i]-1}\)则是原质数的指数————>\(a[i]^{a[i]^{b[i]-1}-1}\)。
我们只要证出\(a[i]-1>0\)以及\(a[i]^{b[i]-1}-1>=b[i]\)即可。
因为\(a[i]>=2\),所以第一个得证,而第二个我们发现,当\(b[i]==1||(b[i]==2\)&&\(a[i]==2)\)的时候是不能得到的。其他都能,于是得证。
3.如果\(n=2^2*p1...*pm\),则符合条件的\(x\)仍是无限个。
我们可以将\(n\)拆成\(n=2*2*p1...*pm\)
我们可以发现,如果是\(x=2^{p1}*p1^{p2}*...*pm^{2-1}*p'^{2-1}\)就是一个合法的\(x\),而\(p'\)可以取任何质数。
因为\(p1>2\),所以得证。
这样我们发现\(n=∏(1<=i<=m)a[i]\)的时候解法的时候才需要乱搞。
对于\(m=1\)的时候,\(x=a[i]^{a[i]-1}\)是唯一符合条件的\(x\),显然。
然后对于其他情况,我们发现只需要满足\(x=∏(1<=i<=m)a[i]^{a[p[i]]-1}\)(\(p\)是\(1\)~\(m\)的排列),那么就符合条件。
状压\(DP\)玩玩即可。
总结
对于新的、较困难的操作,可以试着转化成容易的操作。
规律什么的要好好找找,要看看是否为积性函数。
对于推式子这种狗血操作,要多练才行。。。