P7610 [THUPC2021] 群星连结

新鲜题解出炉~

大模拟自然是很难写的,但此题比猪国杀要简单许多,没什么坑点,从码量上就可以看出,但我写了将近一天(可见码力之弱)。

主要讲讲怎么尽量做到思路清晰而节省时间地做这类题目吧,也总结一下我策略上的问题。


首先通读全文,技能天赋主要看一下有哪些形式

因为只有两个玩家,有两种选择:

  • 用名字来命名。
  • (0/1) 来表示。

考虑到两个玩家之间的互动是完全一样的,所以前者会大大增加码量,肯定得选择后者。

最先搞定角色的属性

接着先别着急写具体技能,先将主要框架罗列出来:

  • 能发动技能就发动技能。
  • 发动不了技能就发动普通攻击。
  • 己方行动结束后的结算。
  • 一回合结束后的结算。

然后再着手那些花里胡哨的东西。观察到所有攻击类型都是伤害真实伤害的组合,于是可以写一个函数来计算生命值扣除

在写剩下的东西之前一定要明确各种附加事件发生的时间结点

普通攻击最好和技能分开来写,天赋建议先于技能大致写好。

能量值加成和其余加成略有不同,前者不光需要差分还需要前缀和。

然后就基本做完了,中二技能需要特别注意一下不然会获得 (99pts) 的高分。

最后有一点建议:死亡角色不要干任何事情,建议在所有地方都判掉。虽然非生命值修改了也没关系但会导致代码非常混乱,调试也可能受影响。

多多静态查错,实在不行了再去下载数据,和标程对比哪一步出了问题。

我的问题就是,写代码的时候脑子比较晕,加之有些值很类似导致写出了一大堆锅。所以保持良好的状态写代码远比花费大量时间调试有效。

代码在云剪切板

推广一下

原文地址:https://www.cnblogs.com/May-2nd/p/14883821.html