CF1986

CF1986A,我们设x1\leqx2\leqx3,答案位置为a,则距离和为|a-x1|+|a-x2|+|a-x3|,然后分类讨论x1\leqa\leqx2,x2\leqa\leqx3,x3\leqa,通过推到发现最后答案为x3-x1。

CF1986B,注意n*m总和不超过2e5所以此题只能用O(nm)的方法。考虑它要求选i尽量小,i相同j尽量小,所以当某个位置未变为不合法,则比它i/j大的位置不会用到,就顺次往下,统计答案就行。

CF1986C由于要让改后字典序最小,肯定是吧c字符串中小的往前放,于是我们对ind和c排序,将ind去重(要不就被覆盖了),然后将对应位置赋值就行了。

CF1986D,注意到n的范围允许O(n^{2})的复杂度,因为要n-2个符号,所以必有一个两位数,我们枚举这个两位数是啥,然后处理序列。当有0或1时要乘(显然),否则就加。

CF1986E我们注意到如果一个数不断加k可以变成另一个数需要两数同余。我们先考虑如何判断能不能行,我们对每个a_i%k开一个桶,存同余的数,如果装的数量为奇数的桶数>n%2,则不行。然后我们考虑如何让答案尽量小。当桶中有偶数个时,第1个与第2个配,第三个与第四个配.....,当有奇数个,需要有一个不用参与改变,它将两边分开,每向右挪一次,将右面的一部分给左面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值