10.21日常总结

来源:互联网 发布:唐诗逸 知乎 编辑:程序博客网 时间:2024/04/28 08:42

10.21日常总结

总体情况
结论题没搞出结论,炸了;DP题看错数据范围,不敢打正解;第三题,又是真的没想到,做了一上午题挺颓废,其实可以拿的分又是没拿到。


T1 Deep
题目描述
失败的燃烧军团想要逃回深渊,Khadgar 想要追击它们。
然而进入深渊的传送门只有一座,燃烧军团和Khadgar 各有一些法力水晶,由Khadgar 先手,双方每次可以作出如下选择:
• 使用一个法力水晶,使得传送门的法力等级增加一。
• 不用法力水晶,让对方增加等于传送门法力等级的深度,然后将传送门的法力值清零。特别地,若法力水晶数不为零且传送门法力等级为零则不能进行这样的操作。
双方都会采取最优策略使自己的最终深度与对手深度的差最大(初始时深度均为零)。
现在多次给定双方起始的法力水晶数量A, B,求Khadgar 与燃烧军团的的最终深度差。
~~
总结
->结论题,是送分题也是送命题,对于 A, B 均为正整数的时候答案就是 A − B − 2,否则特判掉即可。看到数据范围也不大就没想到是结论,最后fail。


T2 Dark
题目描述
LichKing 希望收集邪恶的黑暗力量,并依靠它称霸世界。
世间的黑暗力量被描述成一个长度为N 的非负整数序列{Ai},每次它可以选择这个序列中的两个相邻的正整数,让他们的值同时减一并获得一点邪恶力量,直到不存在满足条件的数。
然而你不希望他能够得逞,所以你会使得他收集的能量尽可能少。
~~
总结
->就是DP啊,裸的,挺简单的,但是看错数据范围,没敢搞,最后打了一个小DP(非正解),骗了一点分。–好好看题啊!考虑题目的特殊性质:∑Ai 比较小。
不难想到一个 O(∑Ai) 复杂度的 dp 。
我们记状态 dp[i][j][0/1] 表示第 i 个数的当前值为 j,它的上一个值是否为 0 情况的答案。(就是看错Ai总和与单体的大小)


T3 Fantasy
题目描述
Y sera 陷入了沉睡,幻境中它梦到一个长度为N 的序列{Ai}。
对于这个序列的每一个子串,定义其幻境值为这个子串的和,现在Y sera 希望选择K 个不同的子串并使得这K 个子串的幻境值之和最大。
然而由于梦境中的种种限制,这些子串的长度必须在L 到R 之间。
你需要告诉她,最大的幻境值之和。
~~
总结
->实在是没有想到正解,只好暴力了。
我们可以将这样子的区间按照右端点分类,维护每一类的最值。首先考虑每一个点作为右端点的最优区间,发现次优区间的左端点一定在上一次右端点的左右两边。
这样我们每次处理玩一类区间的最优值后,将它两边的可能成为下一个最优区间的
左端点考虑进来。
可以用一个堆维护这些值,然后 Rmq 快速查询这样的左端点。
以上正解,实在没想到。