A.Odds and Ends
题意:给出n个数,要求将这n个数分成奇数个长度为奇数且首尾为奇数的非空子段。
当时考场上没有想出O(1)算法,只好写了一个二维dp。。。
O(1)算法:判断n,a1,an是否都为奇数。
dp代码:点击打开链接
B.Tell Your World
题意:给出n个点,判断这些点是否能分布在两条平行的不重叠的直线上。
我个人的做法是这样的。
先假设1号点必定在一条不只有1号点的直线上,然后将1号点与每一个点连边算斜率,然后用这个斜率套一下每一个点。如果有两个不同的b就成立。
然后,如果说1号点单独的存在于一条线上,那就另外随便取两个点判断即可
代码:http://paste.ubuntu.com/25449295/
C.From Y to Y
题意:一开始有一堆字符。然后每次选择一组合并,定义f(s,c)为字符串s中字符c出现的次数,那么合并的价值为。要求最后的总价值等于给定的k。
这题瞎搞搞就可以了呀。
比方说最后的字符串中有n个相同的字符,那么这n个字符对答案的贡献就是n*(n-1)/2
然后就是瞎搞了。。。
代码:代码
由于本垃圾实在是太菜了,所以各位大佬有什么问题尽管指出