CF1830C

原题

翻译

前置知识:catalan

首先我们先考虑如果没有线段怎么做

我们容易发现如果n为奇数肯定无解,如果n为偶数答案为第n2catalan

然后我们考虑如果两个线段相交这里会产生什么影响,即对于线段[l1,r1][l2,r2]满足l1l2r1r2,我们容易发现其方案数等价与三个线段内的括号序列合法:

  • [l1,l21]

  • [l2,r1]

  • [r1+1,r2]

我们考虑如果两个线段重叠会产生什么影响,即对于线段即对于线段[l1,r1][l2,r2]满足l1l2r2r1,我们容易发现其方案数等价与两个线段内的括号序列合法:

  • [l2,r2]

  • [l1,l21][r2+1,r1]

于是我们可以得出结论:设Si表示i位置被Si集合内的线段覆盖。则所有Si相同的位置可以单独计算贡献,所有方案相乘即为答案

于是我们考虑一些奇技淫巧随机化算法

我们为每一个线段赋一个随机权值bi,让区间[l,r]内所有位置异或上这个随机权值

则对于Si,Sj值不同的两个位置i,j,将以高概率ai,aj不同;相反的,如果Si,Sj值相同,高概率ai,aj也相同

因此我们只需要对ai离散化后对每一个相同的ai单独计算贡献,所有方案相乘即为答案

最终复杂度O(nlogn),复杂度瓶颈在排序

posted @   FOX_konata  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示