Codeforces Round #411(A. Fake NP; B. 3-palindrome; C. Find Amir; D.Minimum number of steps)

来源:互联网 发布:zepto.js swipeleft 编辑:程序博客网 时间:2024/05/18 02:58

A. Fake NP
题解:给定一个闭区间的两个端点,试判断在此区间内所有数字的非1公因子出现最多的数字。如果有多个,给出其中一个就可以了。这道题比较讨巧的方法试直接输出2。
B. 3-palindrome
题解:题目要求用由‘a’,‘b’‘c’三个字母组成给定长度的字符串,其中不能包含长度超过三的子回文串,同时要保证‘c’的使用尽可能少。
本题只需要根据给定长度是否为3的倍数就可以分情况讨论,得出当前的一种可能解。
C. Find Amir
题目:有N个孤立的点从1~n编号,使任意两个点相连的成本为(i+j)mod(n+1),如果要使N个孤立的点最终能连成一张网络,求最小花费。
题解:观察发现mod的为n+1,可以发现,当N为偶数时,将1与n一组,2与(n-1)一组,以此类推,每组内部相连不需要花费,而在每组之间进行连接时,啊发现2可以与n相连,3与n-1相连,以此类推。最终费用为n/2-1.如果n为奇数时,仍可以首位对折分至一组,中间的自己一组,这样每组组内相连花费为1,组间相连成本也为1,因此最终花费为n/2
D. Minimum number of steps
题目:给出一串由‘a’,‘b’组成的字符串,其中的“ab”会被转化成为“bba”,问对于给定字符串可以进行几次这样的操作
题解:
这道题是一道找规律题,每一个ab都将会变成bba,也就是将a移至b后面,再增加一个b。分析第二个样例,发现a…ab…ba…ab…b中后面产生的b会对前面a的转移产生影响,每有一个a移至b后将会使b的数量增多一倍,因此可以从末尾开始计算生成b的数量,遇到一个普通的b数量+1,遇到一个a因为它会让b的数量翻倍,因此要使数量x2.

1 0
原创粉丝点击