Processing math: 100%

HZOI20190819模拟26题解

题面:https://www.cnblogs.com/Juve/articles/11376806.html

A. 嚎叫响彻在贪婪的厂房:

是时候学习一下map和set的用法了。。。。。。

贪心:区间[L,R]合法的条件:所有相邻两数差的绝对值的gcd不等于1,且没有重复的元素

gcd比较好满足,判重用map或set都可以

B. 主仆见证了 Hobo 的离别

题解说什么离线建树。。。

其实只用xgdfs在线搜索

如果是交,我们就建立由新点指向原点的有向边,表示新点有的元素原点也有

并就反过来,当然我们要特判k=1的情况,因为此时交和并等价,建双向边即可,

查询的话dfs,只要x能到y就行

C. 征途堆积出友情的永恒

有一个明显的50分dp:

设sum[i]表示前缀和,那么f[i]=min(f[j]+max(sum[i]-sum[j],b[j+1]))

n2转移,再加上三个特判,可以得到80分:

可以用堆优化dp:

建两个小根堆,一个维护 f[j]+b[j+1] ,另一个维护 f[j]-sum[j] ,则答案为 min(第一个堆的最小值,第二个堆的最小值+sum[i]) 。
如果取到的j小于i-k,则弹出堆顶继续取。
在第一个堆中取数时,如果发现它比 f[j]-sum[j]+sum[i]小,则把j加进第二个堆,弹出第一个堆的堆顶继续取,直到取到符合条件的为止。
显然,一个j至多进堆2次,出堆2次。

 

posted @   xukl21  阅读(169)  评论(0编辑  收藏  举报
编辑推荐:
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· Linux系统下SQL Server数据库镜像配置全流程详解
阅读排行:
· Sdcb Chats 技术博客:数据库 ID 选型的曲折之路 - 从 Guid 到自增 ID,再到
· Winform-耗时操作导致界面渲染滞后
· Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能
· 语音处理 开源项目 EchoSharp
· drools 规则引擎和 solon-flow 哪个好?solon-flow 简明教程
点击右上角即可分享
微信分享提示