码迷,mamicode.com
首页 > 其他好文 > 详细

模拟测试20191003

时间:2019-10-04 00:20:24      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:通过   表示   最小花费   离线处理   das   回溯   持久   最大   维护   

我好菜啊

$T1:Divisors$

枚举每个a的约数,sort并统计就好了

 

$T2:Market$

感觉经常做这种题啊

由于价格太大,而收益很小,考虑以收益为下标

设dp[i]表示当前收益为i时的最小花费

离线跑个背包就好了

 

$T3:Dash Speed$

题意就是统计某些边构成的森林中最大的直径

由于在线不太好统计(期待cbx巨神的线段树合并优化dp),我们考虑离线处理

这种一个东西可以对一个区间产生贡献的题让我们想起来之前某道线段树题

那我们把边拍在线段树上,则从根走到某个点就可以得到这个点所包含的边集

现在考虑怎么维护支持加边和删边的树上直径

通过之前某道题我们知道并查集可以维护支持删边的树上直径

所以我们只要打个可持久化并查集就能AC了(并不

我们发现删边只是把刚加入的边删除,所以我们在回溯的时候撤销即可

 

模拟测试20191003

标签:通过   表示   最小花费   离线处理   das   回溯   持久   最大   维护   

原文地址:https://www.cnblogs.com/mikufun-hzoi-cpp/p/11620860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!