摘要:
" 传送门 " Solution: 我们考虑把所有能够互相翻到的牌归到一个集合里去 ,不难想到可以用并查集来维护这些集合。由于前面的骨牌可能太长以至于影响后面骨牌的统计答案,所以我们要离线询问,从后往前做。 并且再维护一个单调栈,用来存并查集的祖先们。 维护后缀和(即到达终点的所需花费)这样的话 对 阅读全文
posted @ 2018-08-11 23:23
Patrickpwq
阅读(209)
评论(0)
推荐(0)
摘要:
"传送门" Solution: 既然是删掉k/c个,那么k=mini,那么删除的还是mini,把c+1个划分到上个区间也是无意义的。 但如果长度为2c的话就能删除2个,但一定不如化成2个c长度的区间优秀。假如前c个的最小值是mini1,次小值是mini2,后c个的最小值是mini3,假如mini2m 阅读全文
posted @ 2018-08-11 23:09
Patrickpwq
阅读(223)
评论(0)
推荐(1)
摘要:
" 传送门 " Solution: maxn数组用来存储“从终点到某点间的最大卖出价”,而minn数组用来存储“从起点到某点间的最小买入价”。两遍spfa跑完之后枚举每一对maxn与minn找到最大的差值即可 写的时候注意逻辑,思路一定要清晰,不然很久都调不出来 cpp include define 阅读全文
posted @ 2018-08-11 20:39
Patrickpwq
阅读(189)
评论(0)
推荐(1)
摘要:
" 传送门 " 对于这道题,我们不难想到,对于两个点,我们可以求出他们的lca,然后顺着链暴力往上修改。 但是这样时间复杂度是很不乐观的,最多可以达到n^2。 这里介绍一种可以用来修改树上路径的方法——子树前缀和。 设定一个修改数组change。如果要对x到y路径上的所有点权值+k,lca为z。那么 阅读全文
posted @ 2018-08-11 10:26
Patrickpwq
阅读(139)
评论(0)
推荐(0)

浙公网安备 33010602011771号