今天的比赛做起来好累啊。。。
考场:\(50 + 30 + 0 = 80\)
T1:
首先想到最简单的方法:暴力spfa,然而发现会TLE,于是想改成dij,但仍会时超。
于是开始想正解,但是好像想不到(我太菜了)
赛后发现原来是贪心。
我们对于二进制从高位到低位开始判断单单这位是否可以到答案。
由于该为贡献大于后面所有的和,所以我们可以直接加入该答案。
然后将其余不合法的边删掉,用剩下来合法的边继续做。
可用并查集判断,bfs也可以。
T2:
这道题感觉十分的神奇。。。
可以说是由暴力入手优化的。
我们暴力是每次左指针移动的时候都要重新做背包。
但正解不需要,是用了两个栈来维护的。
考虑使用两个栈来模拟队列。
插入的时候在右边的栈顶放,弹出的时候在左边弹。
当左边弹空了,就把右边的栈倒过来插入到左边。
T3:
总结:
要多思考,想宽一些,不要局限于一点。
现在:\(100 + 100 + 0 = 200\)