首页 > 代码库 > Codeforces Round #278 (Div. 2)

Codeforces Round #278 (Div. 2)

A. Giga Tower
模拟即可,略过
B. Candy Boxes
四个整数x1..x4,满足x1<=x2<=x3<=x4,假如sum x1..x4/4 == x2+x3 /2 == x4 - x1,那么这四个数字便叫做“特别的”。注意限定的条件中的除法运算结果可以为小数。
给定0<=n<=4,然后是n个数字,求你是否可以找到其它的数字,组成一组“特别的”数字。
给定的数字在[1,500]内。
 
重点在于把题目中的限定条件进行数学推导,得到清晰直观的限定条件。
 
分析:
  我们对限定条件进行数学运算,得到x4=3x1,x2+x3 = 4x1,只要满足这两个限定条件,就等价于满足题目给出的限定条件。
  分情况:
    n=0,随便输出任意一组满足条件的数字即可。
    n=1,给定数字x,输出x x 3x 3x
    n=2,给定数字x<=y,假如y<=3x,有解,输出x 4x-y,y,3x(注意要排序)
    n=3,给定数字x<=y<=z
    只有下面四种情况
    * x y z——z/3 == x+y / 4
    x * y z——z = 3*x
    x y * z——同上
    x y z *——z+y /4 == x
    n=4,只要排序之后判定就可以了
C. Fight the Monster
有人物y和怪物m,进行对抗,他们都有三个属性,hp,atk,def(不解释了),每一轮,他们分别收到max(0,对面的atk-自己的def)的伤害到自己的hp上,假如m的hp<=0的同时y的hp>0,那么Y就赢了。
y可以买属性,每一点的价格分别为h,a,d
给定他们两个的三个属性值,给定价格,问y要战胜怪物m需要花费最少多少钱在买属性上?
给定的属性值都在[1,100]
 
剪枝搜索
 
defy最大为100,因为再大的话也没有意义了。
atky最大为200,因为此时已经可以一击秒杀了。
 
在y和m的攻击防御都确定的情况下,游戏进行回合也可以算出来,根据这个,可以算出来需要购买的hp。
 
所以,枚举def,atk,然后计算需要买的hp,就可以算出来需要获胜的价格。

Codeforces Round #278 (Div. 2)