2024“钉耙编程”中国大学生算法设计超级联赛(3) 1005 数论

news/2024/9/22 20:40:45/文章来源:https://www.cnblogs.com/xcs123/p/18333257

题意:

分析:

远看数论题,实则是道数据结构。

\(f_{i}\) 表示 \(r_{k}=i\) 的方案数,\(g_{i}\) 表示 \(l_{1}=i\) 的方案数,那么运用简单容斥,可得:

\[ans_{x} = (\sum_{i=1}^{n} f_{i}) - ((\sum_{i=1}^{x-1}f_{i})+1) \times ((\sum_{i=x+1}^{n}g_{i})+1)+1 \]

先考虑如何计算 \(f_{i}\),对于一个相同的 \(i\)

\(z=\gcd(a_{x},a_{x+1},\dots,a_{i})\),可以发现随着 \(x\) 变小,\(z\) 单调不升且 \(z\) 的本质不同的值不超过 \(\log V\) 个。因此可以使用二分把所有 \(z\) 相同的左端点的区间求出来,对于 \(z\) 相同的一段左端点 \(x \in [l,r]\) 而言,它在 \(dp\) 转移时必须满足上一个区间的 \(gcd\) 与这个区间的 \(gcd\) 值相等,解决方法也不难,只需要先二分离线预处理出一些四元组:

\[(l,r,i,z) \]

其表示左端点所属的区间为 \([l,r]\),右端点为 \(i\)\(gcd\)\(z\)。根据上面的分析,这样的四元组的个数不超过 \(n \log V\) 个。我们将 \(z\) 相同的四元组按 \(i\) 排序,记 \(sum_{i}\) 表示在该 \(gcd\)\(\sum_{j=1}^{i}f_{i}\),那么转移为:

\[(\sum_{j=l-1}^{r-1} g_{j}) \to f_{i} \]

转移它可以使用线段树(不用树状数组是因为树状数组无法快速清空),套路地维护 \(f_{i}\)\(if_{i}\) 的前缀和,这样就能快速求出 \(g_{j}\) 的前缀和,这样就能转移了。总时间复杂度 \(O(n \log n \log V)\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/774214.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

金蝶云星空历史库存信息批量计算生成

一、业务背景今天是2024年07月30日,系统2024年01月01日启用,导入初始库存。 二、需求背景需要快速查询库存组织=供应链中心下,某仓库某物料的库存数。后面还需要按照过去时间范围查询每一天的库存量以监控变化。 三、参考《库存汇总表》《库存余额》《库存账龄分析》《物料收…

使用 useSeoMeta 进行 SEO 配置

title: 使用 useSeoMeta 进行 SEO 配置 date: 2024/7/30 updated: 2024/7/30 author: cmdragon excerpt: 摘要:本文介绍了Nuxt3中的useSeoMeta组合函数,用于简化和优化网站的SEO配置。通过这个工具,开发者可以在Nuxt3项目中方便地设置页面元标签,包括标题、描述以及Open …

史上最便宜的服务器

史上最便宜的服务器:免费空间 10米永久使用,不过空间容量只有100M 提示:不是广告,有时候需要用的时候找老半天,干脆做个随笔记录

格式举例

文章目录a markdown unordered list which will be replaced with the toc, * 号前面和后面需要有个空格。文本 这是一个段落,我要把它设置为蓝色,只需在前面的标签上嵌入style属性即可,style用于内联css。 to bold text, use <strong>. to italicize text, use <e…

代码随想录二刷(链表章节)

代码随想录二刷(链表章节)链表就是通过指针串联在一起的线性结构,每个节点都是由一个数据域和指针域(存放下一个节点的指针)。 双链表就是每个节点中既有指向前一个节点的,也有指向后一个节点的。循环链表就是把头和尾连起来。性能分析如下:下面来看下链表的具体题目: Leet…

[Redis]哨兵

这次聊聊,Redis 的哨兵机制。为什么要有哨兵机制? 在 Redis 的主从架构中,由于主从模式是读写分离的,如果主节点(master)挂了,那么将没有主节点来服务客户端的写操作请求,也没有主节点给从节点(slave)进行数据同步了。这时如果要恢复服务的话,需要人工介入,选择一个…

一屏掌控物流风云:数据大屏开启高效运营时代

在日新月异的数字化浪潮中,物流行业正以前所未有的速度迈向智能化、高效化的新纪元。作为这一变革的核心驱动力之一,山海鲸可视化搭建的物流订单数据监控大屏以其强大的信息整合能力、实时的数据可视化展示以及精准的业务决策支持,成为了现代物流企业不可或缺的智慧中枢。想…

ofd轻阅读超大文件优化方案

本人使用Typescript开发了一款ofd 阅读器,参见文章《ofd轻阅读》。web端实现阅读功能有两种方案: ofd转svg;使用h5 canvas。 两种方案各有优劣,本人采用了canvas方案, 劣势:开发难点较大,需要处理更多的细节(比如:文字选中)。 优势:对细节掌控能力更强,能满足用户更…

笔记:从Aurora 8b/10b 到Aurora 64b/66b (一):Aurora 8b/10b

参考: https://www.xilinx.com/products/intellectual-property/aurora8b10b.html#documentation https://docs.amd.com/r/en-US/pg046-aurora-8b10b https://docs.amd.com/v/u/en-US/aurora_8b10b_ds797 https://mp.weixin.qq.com/s/gT4QUgvoFF6UI0PAhfEPvQ 补丁: Aurora 系…

矩阵指数的定义

人就像是被蒙着眼推磨的驴子,生活就像一条鞭子;当鞭子抽到你背上时,你就只能一直往前走,虽然连你也不知道要走到什么时候为止,便一直这么坚持着。

虚树【学习笔记】

为什么要用虚树? 例题 在某些树上问题中,对于某次询问,我们并不需要用到全部的树上的点: 例如,例题中:总点数 \(n \le 2.5\times10^5\) 询问次数 \(m \le 5\times10^5\) 询问的点数 \(\sum k_i \le 5\times10^5\)我们可以发现其实每次询问均摊下来的询问点数k并不多,但如…

组合机床与自动化加工技术的网站开发

这两天一直在学习如何排版,开发一个网站,我运用了前几天所学的vue基本语法将网站的大致模样copy下来这期间我查找了不少知识 比如照片如何在网页中不变性的缩放,通过研究我运用class固定结构和class="container"属性将组件固定形成此网页