出题人水平有限,所以数据很水,测试点也略有问题,所以,在考试结束后,出题人会在原题界面帮各位提交代码,公布最真实的分数。桀桀桀。
T1 好的故事
原题链接
语篇很优美是吧,嘎嘎嘎,这道题挺水的,预估大家都能过,来看题解。
我们用 a n s ans ans来记录答案,首先我们要知道一个数本身就属于好数,所以要将 a n s ans ans的初始值设为 1 1 1。
来想正解。
我们可以设 ( x + 1 ) + ( x + 2 ) + . . . + ( x + d ) = n (x+1)+(x+2)+...+(x+d)=n (x+1)+(x+2)+...+(x+d)=n。其中 x , d x,d x,d都是非负整数。我们可以解得 d ∗ ( 2 x + d + 1 ) = 2 n d*(2x+d+1)=2n d∗(2x+d+1)=2n。令 u ∗ v = 2 n , u*v=2n, u∗v=2n,那么 d = u , x = ( v − u − 1 ) / 2 d=u,x=(v-u-1)/2 d=u,x=(v−u−1)/2,我们需要要求 v > u v>u v>u且 u , v u,v u,v得奇偶性不同。所以 x , d x,d x,d得选择方案就是 n n n的奇因子个数,所求的奇因子的个数,就是奇质因子的幂次 + 1 +1 +1后乘起来,所以我们需要将 n n n分解质因数后贪心就行。
T2 砖工
原题链接
原题只有2个测试点罢了,我的更水了。所以就不讲部分分了。
这道题也不是特别难,所以我把它放在了 T 2 T2 T2的位置。我们首先要处理特殊情况,就是比值恒为 0 0 0或者不存在比值的情况,也就是我们的已知序列都是 W W W或者 B B B,很明显这两种情况的最优解就是每一个字符分一组,需要特判。
下文中用 B B B表示黑块的总量,用 W W W表示白块的总量,用 b i , j b_{i,j} bi,j表示区间 [ i , j ] [i,j] [i,j]中黑块的数量,用 w i , j w_{i,j} wi,j表示区间
[ i , j ] [i,j] [i,j]中白块的数量。
对于任意一个划分 [ x 0 + 1 , x 1 ] , [ x 1 + 1 , x 2 ] . . . [ x m − 1 + 1 , x m ] , { {[x_0+1,x_1],[x_1+1,x_2]...[x_{m-1}+1,x_m]}}, [x0+1,x1],[x1+1,x2]...[xm−1+1,xm],其中 x 0 = 1 , x m = l e n , ∀ p ∈ [ l , m ] , w x p − 1 + 1 , x p b x p − 1 + 1 , x p = C 。 x_0=1,x_m=len,\forall{p}\in[l,m],\frac{w_{x_{p-1}+1},x_p}{b{x_{p-1}+1},x_p}=C。 x0=1,xm=len,∀p∈[l,m],bxp−1+1,x