Codeforces Round #764 (Div. 3)

Codeforces Round #764 (Div. 3)

A. Plus One on the Subset

给定一个数组,要求找出所有数变成同一个数的最小操作次数,一次操作是使任意数量的数加一或者减一 我们通过固定答案,然后找出绝对值差距最大的两个数相加得出答案。

B. Make AP

给三个数字,你能操作其中一个数字任意乘以一个m,问能不能变成等差数列

就直接固定两个数,求另外一个数字即可,看求出来的数是否是一个整数而且能被原来的数整除。

C. Division by Two and Permutation

给定一个数组,每次操作可以把某个数字除以二 向下取整 然后看能不能让n个数字变成1~n的一个排列

我们先把所有数除到小于等于n,然后nlogn暴力一下即可

D. Palindromes Coloring

给定n和m代表字符长度和字符串数量,要求组成m个回文字符串,求m个中长度最短,先求出字母对,分配给m个字,然后剩下的字符看能不能够再分m个,能就最小值再加一(如果字母对没用上也要放在第二步中)

E. Masha-forgetful

给长度为n的字符串和一个目标字符串,要求你用这个长度为n的字符串的截的格式:(l,r,i)(r-l+1>=2)来表示目标字符串,数量不限,给出任意答案。我们需要把n个字符串分割成2和3的小串放在map,然后对n个位dp即可。

F. Interacdive Problem

给一个n,需要你通过猜出一个1n-1的一个数字a,每次你询问一个+x,就会返回一个(a+x)/n,并且这个加法保留,最后要你输出a的现在的值。不难想出通过加上(n-a)n-1都会让答案询问加一,然后通过询问到至少加上哪个值能让答复加一来得到一个mid,初值即为n-mid。如果我们上一个询问为i 那么下一次如果为比i大的数询问j-i即可,如果比i小需要询问(n-i)+j,并且答复的答案多加一轮。

G. MinOr Tree

给定n个点m条边,需要你找出一个最小的边权或生成树。我们可以用克鲁斯卡尔算法,先把边权排序,看最少需要到哪一条边,然后把所有边有最大边的最高位1的都置为0,而且答案要加上这一位1的贡献,因为怎么跑都最小要用到这个一,把所有有这一位1的置为0,重新排序重新做最小生成树,复杂度为排序nlogn加上循环31次

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值