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,就可以算出来需要获胜的价格。

转载于:https://www.cnblogs.com/dandi/p/4116534.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值