A. Heating
有n个问题,每个问题给c和sum,让你把sum分成c份(每一份必须是正数),使得每一个的平方的和最小。输出这个最小的和
题解:
将sum平均分成sum%c份sum/c+1和c-sum%c份sum/c,这个最小的和就是(sum%c)*(sum/c+1)*(sum/c+1)+(c-sum%c)*(sum/c)*(sum/c)
B. Obtain Two Zeroes
有t个问题,每个问题给a和b,让你判断a和b执行任意次a=a-x,b=b-2*x或者a=a-2*x,b=b-x之后能够得到0和0。能够得到0和0输出YES否则输出NO。
题解:
设执行了x次a = a - x,b = b - 2*x和y次a = a - 2*y, b = b - y 如果能够得到0和0,则有a = x + 2*y,b = 2*x + y 因此有(a+b)%3==0&&a - (a+b)/3 >= 0&&b - (a+b)/3 >= 0则输出YES,否则输出NO。
C. Infinite Fence
给一个无穷大的木板,让你给木板涂油漆。有t个问题,对于每个问题输入 R、B、K三个正数。R的倍数的木板涂成红色,B的倍数的木板涂成蓝色。如果木板既能涂成红色又能涂成蓝色,你任意选择。然后将涂上油漆的木板按顺序放到一起。问是否有不小于连续K个相同颜色木板,如果有输出REBEL,否则输出OBEY。
题解:
求在R和B的最小公倍数P个木板的内部有红色木板RR = P/R - 1,蓝色木板BB = P/B - 1。设RR > BB ,如果BB == 0,RR>=K输出R,否则输出O。当BB != 0,RR/(BB+1)>=K输出R,否则输出O。当(K-1)*(BB+1)<=RR,输出O,否则输出R。
D. A Game with Traps
你是一个队伍的领导,你手下有m个士兵,士兵有各自的能力值。在1 - n的位置有些位置 L[ i ] 有陷阱,陷阱要求你要 R[ i ]处才能排除陷阱,陷阱能够对于能力值小于 D[ i ] 的士兵存在伤害。你往前或者往后每走一步需要一个单位的时间,排除陷阱不花费时间,并且排除陷阱的过程不能带士兵。问你能在T的时间内将多少士兵带到位于n+1的老板的面前?
题解:
二分求解,如果能够在T时间内将能力值为mid,R = mid,否则L = mid + 1。可以得到最小的士兵能力值K。找出能力值大于等于K的士兵的个数,输出即可