第一届湖南省信息学拔尖创新挑战活动 总结
\(100+85+40+40=265\)。
拜谢 T4 放水了暴力多给了 \(20\)。可恶 T2 没给初值为极负值而痛失 \(15\)。愤恨 T3 没想到记搜错过正解。
我是 fw,我叫 fw!
Pro.A
简单题,对怪兽的战斗力从小到大排序,按着这个顺序来打怪就行了,可以证明是最优的。
Pro.B
前缀后缀 \(\max\) 整上,枚举中间值,找左右求即可。
注意一开始的初值要赋值为 \(-\infty\) 啊啊啊啊啊啊啊啊啊!!!!!!!1111111111
——来自丢失的 \(15\)pts 的呐喊。
Pro.C
简单记搜。一开始对 \(a\) 数组转个向,然后按顺序搜,边搜边记,\(dp_{i,j}\) 表示当前考虑前 \(i\) 个物品(转向后的)并且目前所占的容量总和为 \(j\),记录选择的物品个数(方便输出)以及上一个的情况 \(pre\),便于后面求解方案情况的时候回退。
注意在输出 \(0\) 的情况下还要多输出一个换行哟~(贼笑)
Pro.D
没听懂。阿拉啦。
经过一番与老师的激烈争吵询问老师之后懂了。(但是问了好久感觉老师都要无语死了)
还没写但是先记录下思路,防止又突然不会了。
首先根据巴士的路程进行建图,子节点连到父节点,肯定是一张森林。在这张图中,同一节点不同时间算作不同的节点。
于是一棵树的根节点就是那棵树里面时间最大的那个节点。
对于时间不同但是节点相同的节点,我们将其染上相同的颜色。
接下来考虑每种颜色,清空线段树,然后找所有这种颜色的节点,从根节点往下赋值,按照 DFN 序串成序列,然后对一个节点的子树赋值,为这种颜色节点的节点开个 vector 什么的存储一下,然后枚举遍历去赋值即可。用线段树,赋值的就是自身这个节点的时间值。
然后枚举所有查询了终点是这个节点的所有查询,把它们的值算出来即可。
我又不会了。最新问题:
题目不是保证了这些时间节点是互不相同的吗?那这怎么建出树呢?都只有一条边吧?

浙公网安备 33010602011771号