首页 > 其他 > 详细

noip模拟45

时间:2021-08-22 18:49:35      阅读:11      评论:0      收藏:0      [点我收藏+]

T1

\[ans=\frac{\sum_{i=1}^{n} |a[i]-ans|}{2^k} \]

每次选择时,由于剩下的数与正确答案的差的绝对值的和是一定的,那么两个cpu一定会选择同一位,填相反的数

也就是说,每次选择都会将集合划分为两个子集,且满足子集除了被选的位外各个位1的个数为子集大小的一半

这样的选择会进行k次,每一位都会被选择,所以最后每个数都会被等概率选到

T3

排序之后,设sum[i]表示a[i]的前缀和,如果满足\(sum[i-1]<\lceil\frac{a[i]}{2}\rceil\) ,那么\((sum[i-1],\lceil \frac{a[i]}{2}\rceil)\)是不能覆盖的区间,且满足\((\lceil\frac{a[i]}{2}\rceil,sum[i])\)一定是合法区间

证明:

\([\lceil\frac{a[i]}{2}\rceil,a[i]]\)\([\lceil \frac{sum[i]}{2}\rceil,sum[i]]\)分别合法

\(\lceil \frac{sum[i]}{2}\rceil<=a[i]\)时显然合法

\(\lceil \frac{sum[i]}{2}\rceil>a[i]\)时,我们要做的就是从sum[i]中不断拿出元素,使左边界小于等于a[i],且右边界始终在上一次移动前的左边界的右边

对于移动过程中的一个sum[x]和sum[x-1],若\(sum[x-1]>=\lceil\frac{ sum[x]}{2}\rceil\),这次移动合法,继续移动

\(sum[x-1]<\lceil\frac{ sum[x]}{2}\rceil\),化简

\[2*sum[x-1]<=sum[x] \]

\[sum[x-1]<=a[x] \]

\[sum[x]<=2*a[x] \]

\[a[x]>=\frac{sum[x]}{2} \]

由刚才的结论知,此时满足区间\([\lceil \frac{a[x]}{2} \rceil,sum[x]]\)合法,因为\(a[x]<=a[i]\),且移动到此时仍是合法,即在之前移动过程中没有断层,故区间\([\lceil\frac{a[i]}{2}\rceil,sum[i]]\)合法,移动结束

证毕

noip模拟45

原文:https://www.cnblogs.com/sitiy/p/15172296.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!