Coci2015泛做

最近比较颓废,写点题练练智商...

感觉自己还是太弱了

进入正题

BZOJ3743 [Coci2015]Kamp 

题意:一棵树有边权,有k个关键点,求在每个点出发遍历每个关键点一次的最小边权和

Sol:对于一个点,ans_i=以i为根的k个点的虚树边权和*2-i出发最长链;

一遍dfs求出子树边权和,向下最长/次长链,再dp一遍出解,时间复杂度O(n)

BZOJ3745 [Coci2015]Norma

题意:

Sol:考虑枚举右端点,线段树维护每个位置为左端点到右端点的答案,右端点每次移动会改变一个区间的最值,可用单调栈处理;

把式子拆开,线段树节点维护6个值和2个标记,每次查询即可,时间复杂度O(nlogn)

BZOJ3810 [Coci2015]Stanovi

题意:n*m矩形分割成若干块,要求每块都与边界相连,每块代价为(面积-k)^2,求最小代价

Sol:任意合法切割方案一定存在一条线将矩形分割,可以枚举分割线dp,状态中记录上下左右是否作为边界,都不是的赋值正无穷

时间复杂度O(n^3)

BZOJ3881 [Coci2015]Divljak

题意:n个字符串和一个字符串集合,支持向集合中加入一个字符串,询问i串是集合中几个串的子串

Sol:对n个串建AC自动机,新加入的字符串在自动机上跑,每个节点更新fail树上到根的路径且重复代价只算一次

可转化为求树链交,将点按dfs序排序,每个点到根+1,相邻点lca到根-1

查询即为查询fail树上子树和,树状数组维护,时间复杂度O(mlogm) m为字符串总长

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值