CF2039F1 Shohag Loves Counting (Easy Version)

news/2025/1/9 23:47:37/文章来源:https://www.cnblogs.com/enderdeer/p/18663103

题目的限制很奇怪,碰到这种限制我们要做的事情就是把它翻译成人话。

假设数组长度为 \(n\),那么对于数组的最大值 \(x\),显然一定存在 \(f(n)=x\),这个时候我们必须要求 \(f(n-1) \neq x\),可以发现,如果 \(x\) 不在第一个位置或者最后一个位置,那么一定有 \(f(n-1)=x\),因此最大值一定在最左侧或者最右侧。

同时,我们注意到 \(f(n-1)\)\(f(n)\) 的因数,并且实际上这两个集合是 \(\text{{x,second_x}}\)\(x\)。那么我们考虑删去最大值,剩下的序列仍然满足条件。递归论证可以发现,这个序列是一个严格的单谷序列。而在这样的情况下,\(f(k)\) 的取值实际上是序列排序后每个后缀的 \(\gcd\),题目要求它们两两不同。

这样,我们可以考虑从大到小加入元素。设 \(f_i\) 表示目前的后缀 \(\gcd\)\(i\) 的序列个数,假设我们现在加入 \(i\),那么暴力地做,我们应该是:

枚举 \(i\) 的一个因数 \(j\),对其的贡献是:

\[\sum f_k[\gcd(k,i)=j] \]

可以对其进行莫比乌斯反演:

\[\sum f_k[\gcd(\frac{k}{j},\frac{i}{j})=1] \]

\[\sum f_k \sum \limits_{d|\gcd(\frac{k}{j},\frac{i}{j})}\mu(d) \]

枚举 \(k = jk'\)

\[\sum f_{kj} \sum \limits_{d|\gcd(k,\frac{i}{j})}\mu(d) \]

枚举 \(d\)

\[\sum \limits_d \mu(d) \sum \limits_k f_{kdj}[d|\frac{i}{j}] \]

这个时候考虑维护一个 \(g_k\) 表示 \(\sum f_v[k|v]\),那么枚举 \(i\) 的因数 \(j\),然后枚举 \(\frac{i}{j}\) 的因数 \(d\),把 \(\mu(d)g_{dj}\) 加进对 \(f_j\) 的贡献即可。注意 \(f_j\) 不能对 \(f_j\) 自己有贡献,因此要单独去掉这部分。这一部分的贡献整体要乘以 2,因为对于最小值,它可以放在目前序列最小值的左侧或者右侧两个位置。但对于新开一个只包含一个元素 \(i\) 的序列,只有 1 种方案数。

代码

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

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

相关文章

妙用编辑器:列编辑在编写Markdown表格时的使用技巧

1 妙用编辑器:列编辑在编写Markdown表格时的使用技巧经常写Markdown笔记的朋友应该清楚,Markdown的表格比较麻烦,定义表格每列时需要使用|线进行绘制表格边界。比如有下面一段文字名称, 大小, 类型, 修改, 属性 …

Python用K-Means均值聚类、LRFMC模型对航空公司客户数据价值可视化分析指标应用

全文链接:https://tecdat.cn/?p=38708 原文出处:拓端数据部落公众号 分析师:Yuling Fang 信息时代的来临使得企业营销焦点从产品中心转向客户中心,客户关系管理成为企业的核心问题。客户关系管理的关键是客户分群,通过客户分群,区分无价值客户和高价值客户,同时更好的了…

【专题】2024年直播、短视频:抖音、小红书、快手行业报告汇总PDF合集分享(附原数据表)

原文链接: https://tecdat.cn/?p=38697 在当今数字化飞速发展的时代,直播、短视频行业已然成为了大众生活与商业运作中不容忽视的重要力量,正不断重塑着信息传播与消费的格局。 2024 年,这一领域更是呈现出多元且复杂的发展态势。从内容创作者生态来看,抖音、小红书、快手…

卫龙 IPO 多维度分析及运营创新解析报告-CSDN博客

全文链接: https://tecdat.cn/?p=38686 分析师:Dichuan Zheng 一、报告概述 本报告旨在对卫龙的 IPO 相关情况展开全面分析,涵盖外部环境、波特五力、内部状况、商业模式以及价值链等多方面内容,通过梳理卫龙的发展历程、关键要素等,为了解其上市背景及发展潜力提供参考依…

卷王公开查询设置(1.6版本)

1、公开查询设置页面说明 创建的流程为:问卷 -> 设置 -> 公开查询设置 -> 新增查询页面页面标题,设置查询页面的标题 页面查询描述信息,设置查询页面的描述 查询条件,点击设置可以选择多个查询条件,必须满足所有的查询条件才能输出结果 查询结果,可以控制每一个…

在Lazarus下的Free Pascal编程教程——打造有智能感知的用户设置操作界面

0.前言 我想通过编写一个完整的游戏程序方式引导读者体验程序设计的全过程。我将采用多种方式编写具有相同效果的应用程序,并通过不同方式形成的代码和实现方法的对比来理解程序开发更深层的知识。了解我编写教程的思路,请参阅体现我最初想法的那篇文章中的“1.编程计划”和“…

基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM

1.程序功能描述 基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP神经网络,RBF神经网络,LSTM网络.对比预测结果和预测误差。 2.测试软件版本以及运行结果展示MATLAB2022A版本运行 3.核心程序for i = 1:floor(length(data1)/5);p1w(5*i-4:5*i,1) = [p1(i,1);p1(i,1);…

G1原理—2.G1是如何提升分配对象效率

大纲 1.G1的对象分配原理是怎样的 2.深入分析TLAB机制原理 3.借助TLAB分配对象的实现原理是什么 4.什么是快速分配 + 什么是慢速分配 5.大对象分配的过程 + 与TLAB的关系 6.救命的稻草—JVM的最终分配尝试G1如何分配对象+TLAB机制+分区协调机制 G1设计了一套TLAB机制+快速分配机…

《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下

《docker基础篇:1.Docker简介》,包括Docker是什么、容器与虚拟机比较、能干嘛、去哪下@目录1.Docker简介1.1Docker是什么1.1.1问题:为什么会有docker出现?1.1.2Docker理念1.1.3一句话1.2容器与虚拟机比较1.2.1容器发展简史1.2.2传统虚拟机技术1.2.3容器虚拟化技术1.2.4对比…

redis的zset | 跳表

redis的zset有两种数据结构:跳表和压缩列表 压缩列表除了一般元素外还包括列表长度、列表元素个数、尾部偏移量、列表结束标识等。在zset的长度较小的时候,用这个比较好 什么是跳表 跳表是在链表的基础上,增加了多层索引,利用多级索引的跳转快速实现查询。每次新增一个节点…

Python Matplotlib 教程- Matplotlib 如何进行数据点标记

Python Matplotlib 数据点标记 在数据可视化中,数据点标记是非常重要的部分。无论是绘制折线图、散点图还是柱状图,清晰地标记关键数据点可以帮助观众快速理解图表的核心信息。本篇文章将详细介绍如何在 Python 的 Matplotlib 中实现数据点标记,从基础使用到高级自定义,帮助…

P1803 凌乱的yyy / 线段覆盖

P1803 凌乱的yyy / 线段覆盖 题目 现在各大 oj 上有 \(n\) 个比赛,每个比赛的开始、结束的时间点是知道的。 yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。 所以,他想知道他最多能参加几个比赛。 由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终,而且不能同时参…