Codeforces Round 965 (Div. 2)
A
题意你需要在二维平面上找到 k
个不同的整数坐标点$ (x1,y1)(x_1, y_1)(x1,y1), (x2,y2)(x_2, y_2)(x2,y2), …, (xk,yk)(x_k, y_k)(xk,yk)$,使得这些点的中心(质心)是给定的点$ (xc,yc)(x_c, y_c)(xc,yc)$。
对于偶数个,使得输出值平均分配在输入两侧
对于奇数个,同时输出中间值(即输入)
1 |
|
B
题意:你需要找到一个新的排列 q
,使得其子数组的所有可能的和,与 p
的子数组的和相等的情况尽量少。
Codeforces Round 965 (Div. 2) 题解 - definieren - 博客园 (cnblogs.com)
先猜只有 [1,n][1,n] 的和相等。
做前缀和,问题就变成了$ sumpr−sumpl≠sumqr−sumqlsumpr−sumpl≠sumqr−sumql$。
移项可得 $sumpr−sumqr≠sumpl−sumplsumpr−sumqr≠sumpl−sumpl$。
这就是在说,对于$ i≠ni≠n,Δi=sumqi−sumpiΔi=sumqi−sumpi $互不相等。
然后枚举构造方式,发现可以构造 $qi=pimodn+1qi=pimodn+1$。
不难发现,如果$ pi<npi<n$,则 $Δi=Δi−1+1Δi=Δi−1+1$;如果$ pi=npi=n$,则 $Δi=Δi−1−(n−1)Δi=Δi−1−(n−1)$。
观察到只有 $Δ0=Δn=0Δ0=Δn=0$,所以这个构造是对的。
1 |
|
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Randolfluo's blog!