其他分享
首页 > 其他分享> > [总结]2022/1/20

[总结]2022/1/20

作者:互联网

[总结]2022/1/20

P1心路历程

赛时

开题12min看完题目,认为T2、T4是大模拟,T1是一个dp之类的东西,T3看到想到了宽搜。认为T2好做一点,于是开始干T2。认为自己的想法是对的,写了一个跑不满 \(O(n^2)\) 的dfs,20min搞定。果断自信换题。

看到T1和T3,认为T1好做一点,骗的分会高一点。(主要是T3的判断状态重复有点烦)想了一会,决定用贪心。dp完全想不到。做法是:给饼干的价值拍一个序,然后以吸血量为关键字节给关于吸血量的数据排序。(包括防御值之类的)之后枚举吸血量,如果发现使用较大的吸血方式依然不会死,就一直使用;如果发现所有的吸血方式都不行就吃饼干。然后在算的过程中顺便把回合数给算出。因为**原因,导致打了两个 \(\text{Qsort}\),所以有了100多行(又想起了CSP的T3)。

后面看到T4,又用的贪心。先给时间排序,然后令初始位置为第一个时间出现的鼹鼠的位置,然后模拟一下。

T3觉得BFS比较好,所以……写了150行,关于判断状态重复,我是使用了状态压缩。(对比起状压dp,还算简单的状态压缩)由于是最后1h写的所以没调出来,最后打表。

赛后

???我T2没有AC???居然要找规律?xs,又是一道结论题。为什么我没有想到找规律呢???

《如果早知道随便打的T1的分都要比好好打的T2的分高》

T3与T4爆零,OJ的数据又不水了?

P2比赛反思

  1. T2应该好好检查一下,对于这种“四不像”的题目,首先应该想到是结论题之类的。(经验++)
  2. 不要过于自信,但一定的自信是需要的;如果自信的认为某道题是某个解法,那么在初次打代码的时候可以自信,但后期检查的时候一定要谦虚一点。
  3. 检查自己的算法,多去验证自己算法的正确性,多Hack自己的程序。
  4. 对于题目的整体把握还不够,导致自己想的与别人不一样。
  5. 比赛时的做题顺序以及看题的时间有提升,值得继续坚持。

P3感想

  1. 为什么自己想的与别人不一样?多看看别人优秀的博客或者多接受他人的思想。
  2. 检查很重要,它可以避免你用你狭义的认为较好的算法。
  3. 大胆用各种骗分算法。

P4题目总结

T1

这道题的正解就是贪心。由于每种攻击方式以及对应的防御方式导致血量的增长、减少是一样的,所以我们只用选择攻击力最强的攻击方式。对饼干的价值排个序。一开始我们不吃饼干,一直用攻击力最强的方式攻击。然后计算怪兽与蝙蝠死的回合数。显然可以 \(O(1)\)的除法解决。然后我们判断一下:

  1. 怪兽死的回合数是否小于蝙蝠死的回合数;
  2. 蝙蝠死的回合数是否是负数。
    如果两个条件满足其中之一,可以直接输出怪兽死的回合数。
    然后在考虑吃饼干。显然,无论什么时候吃饼干,对于蝙蝠的贡献是不变的。然而,饼干对于蝙蝠的贡献又分正贡献和负贡献两种(饼干一开始的价要减去怪兽一回合对它的伤害),所以我们尽量吃正贡献的饼干。如果发现吃了一部分或者吃完了正贡献的饼干,可以是蝙蝠赢,那就输出(计算回合数是 \(O(1)\) 除法。如果发现吃完了所有的正贡献的饼干还是不能赢,说明这时只能平局或者输了。打码的时候注意亿点细节。

T2

结论题。结论为:从后往前数,如果当前位置 \(i\) 的数是1,且从后往前数的出现的次数是奇数次,则对答案的贡献是 \(2^i-1\);如果是偶数次,对答案的贡献是 \(-(2^i-1)\)。

标签:总结,饼干,T2,T3,T1,回合,2022,20,贡献
来源: https://www.cnblogs.com/xmtxlym/p/15831512.html