2019 USP-ICMC

J - Weird Sanchola (贪心)

我们思考一下最终的素数取什么最优,假设素数 P P P,有 L L L个元素小于等于 P P P,有 R R R个元素大于 P P P,
那么我们需要移动的次数就显然是 P ∗ ( L − R ) − s u m ≤ p + s u m > p P*(L-R)-sum_{\leq p}+sum_{>p} P(LR)sump+sum>p,我们需要最小化这个值.
先将数组按从大到小排序。
结论:当 n n n为偶数时, L = R L=R L=R时最优, n n n为奇数时, ∣ L − R ∣ = 1 |L-R|=1 LR=1最优。
证明: n n n为偶数时,假设 L > R L>R L>R
x = L − R > 0 x=L-R>0 x=LR>0
P ∗ x − s u m 1 − L + s u m L + 1 − n P*x-sum_{1-L}+sum_{L+1-n} Pxsum1L+sumL+1n
= s u m L + 1 − n − s u m 1 − n 2 + P ∗ x − s u m n 2 + 1 − L =sum_{L+1-n}-sum_{1-\frac{n}{2}}+P*x-sum_{\frac{n}{2}+1-L} =sumL+1nsum12n+Pxsum2n+1L
= s u m n 2 + 1 − n − s u m 1 − n 2 + P ∗ x 2 − s u m n 2 + 1 − L + P ∗ x 2 − s u m n 2 + 1 − L =sum_{\frac{n}{2}+1-n}-sum_{1-\frac{n}{2}}+P*\frac{x}{2}-sum_{\frac{n}{2}+1-L}+P*\frac{x}{2}-sum_{\frac{n}{2}+1-L} =sum2n+1nsum12n+P2xsum2n+1L+P2xsum2n+1L
很显然后面的 P ∗ x 2 − s u m n 2 + 1 − L + P ∗ x 2 − s u m n 2 + 1 − L ≥ 0 P*\frac{x}{2}-sum_{\frac{n}{2}+1-L}+P*\frac{x}{2}-sum_{\frac{n}{2}+1-L}\geq0 P2xsum2n+1L+P2xsum2n+1L0
即得到 s u m n 2 + 1 − n − s u m 1 − n 2 ≤ P ∗ x − s u m 1 − L + s u m L + 1 − n sum_{\frac{n}{2}+1-n}-sum_{1-\frac{n}{2}}\leq P*x-sum_{1-L}+sum_{L+1-n} sum2n+1nsum12nPxsum1L+sumL+1n
证毕。
其他情况类似讨论。
然后就是找一个最中间的素数了,直接排完序预处理前缀和后,在中间的数包含的一个区间找素数然后去一个最小答案即可,区间要在保证复杂度的情况下尽量大,区间太小可能找不到最优解。
复杂度 O ( l e n ∗ s q r t ( x ) ) O(len*sqrt(x)) O(lensqrt(x))

F - Drawing cards (期望)

显然最终桌上的卡片只有 n n n种可能,
然后我们讨论每种可能的概率:
只有一张的时候显然我们第一次就拿了1,概率为 1 n \frac{1}{n} n1
两张的时候,我们最后一次拿的是1,前面至少1次拿了别的卡片,然后由于后边再拿这种卡片对桌上卡数没有影响,所以我们可以拿无数次,即概率为 ∑ i = 1 ∞ ( 1 n ) i = 1 \sum_{i=1}^\infty(\frac{1}{n})^i=1 i=1(n1)i=1
类似可得任意可能的概率都是1
然后答案就是 1 − n 1-n 1n的等差数列求和再除 n n n

你可能感兴趣的:(acm,gym)