CF1474F

感谢 _lgswdn 大佬的耐心讲解,让我学了这题 O(n3) 的高妙做法(数据范围可以加个零)

此题解主要为 _lgswdn 题解的具体阐释以及帮作者理清思路开始写题。

首先把原图压缩一下,如何相邻两端都是上升/下降,就将它们合并,这样可以把原图变成一上一下的特殊形状方便分析。

将原图分层后大概是:

image-20231109211922571

要求的是 LIS,我们按值域从小到大考虑。

首先有个细节就是如何分层,一种高妙的做法是用左闭右开表示 [l,r+1) ,这样做的好处是方便找到相邻两层的差值。

fi,j 表示当前考虑到值域上第 i 层,下标分析到第 j 段,保证 LIS 最大的情况下的方案数,显然要 LIS 最大,fi,j 只能从上一层转移而来。

假设从 fi1,k(kj) 转移而来,它的贡献系数是什么。

image-20231109213610937

中间的东西没有画,显然最后一段 j 的最后一个点肯定是一定要选的,设中间会有 x 个向下的段,x+1 个向上的段(最后一段若是向下的同理)。

那么现在相当于 x+x+1 个盘子,len 个苹果,有 x 个盘子至多放一个苹果,x+1 个盘子随便放苹果,盘子本质不同,苹果本质相同,求方案数。

根据插板法,那么 ans(x,len)=i=0x(xi)(leni+xx) ,到新的一层的时候预处理所有 ans 即可。

那么有 fi,j=k=1jAns(x,len)

直接做即可,就是细节有点多。

posted @   Hanghang007  阅读(43)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示