1B
Problem A. Crop Triangles
http://code.google.com/codejam/contest/32017/dashboard#s=p0
组合计数问题,每个tree看成class[i = x%3][j = y%3]中的一个,枚举 E(i1+i2+i3=0MOD3, j1+j2+j3=0MOD3), 累加每种情况的组合数. 此外,三个相同点也视作。。
Problem B. Number Sets
http://code.google.com/codejam/contest/32017/dashboard#s=p1
根据 素数因子s>=P, 对[A, B<10^6+A] 里的数进行分类;
当不同类存在重叠元素时合并两类;
初始每个数为一类;
统计最后的分类个数。
Problem C. Mousetrap
http://code.google.com/codejam/contest/32017/dashboard#s=p2
类似约瑟夫环,每隔k(可以转圈)消除一个元素(下标假定为j),然后k++。
任意给k,问它消除的元素下标j。
1A
A. vector<x1...xn> * <y1...yn> 内积 最小值,贪心法,用一个的最大值乘另一个最小值。
证明:不妨令x1>x2, y1>y2, < x1, x2 > * <y1, y2> - <x1, x2> *<y2, y1> = x1(y1-y2)+x2(y2-y1) = (x1-x2)(y1-y2) > 0. 每次找到这样的顺序就交换,直到交换成贪心顺序无法再交换了。此时内积达到最小值。
Problem B. Milkshakes
Problem C. Numbers
经典的共轭复数的次数和 问题。(a+bx)^n + (a-bx)^n = 整数=一个可以用矩阵加速求得的数列项。
In this problem, you have to find the last three digits before the decimal point for the number (3 + √5)n.
For example, when n = 5, (3 + √5)5 = 3935.73982... The answer is 935.
For n = 2, (3 + √5)2 = 27.4164079... The answer is 027.