P5591 小猪佩奇学数学(单位根反演)

P5591 小猪佩奇学数学

∑i=0n(in)×pi×⌊ik⌋⌊ik⌋=i−i%kk1k∑i=0n(in)×pi×(i−i%k)1k∑i=0n(in)×pi×i−1k∑i=0n(in)×pi(imodk)\sum_{i = 0} ^{n} (_i ^ n) \times p ^ i \times \lfloor \frac{i}{k} \rfloor\\ \lfloor \frac{i}{k} \rfloor = \frac{i - i \% k}{k}\\ \frac{1}{k} \sum_{i = 0} ^{n} (_i ^ n) \times p ^ i \times (i - i \% k)\\ \frac{1}{k} \sum_{i = 0} ^{n} (_i ^ n) \times p ^ i \times i - \frac{1}{k} \sum_{i = 0} ^{n} (_i ^ n) \times p ^ i (i \mod k)\\ i=0n(in)×pi×kiki=kii%kk1i=0n(in)×pi×(ii%k)k1i=0n(in)×pi×ik1i=0n(in)×pi(imodk)
考虑前项化简:
1k∑i=0n(in)×pi×i∑i=0n(in)×i=∑i=0nn!i!(n−i)!i=∑i=1nn!(i−1)!(n−i)!n∑i=1n(n−1)!(i−1)!(n−i)!=n∑i=1n(i−1n−1)原式npk∑i=1n(i−1n−1)pi−1=npk(p+1)n−1\frac{1}{k} \sum_{i = 0} ^{n} (_i ^ n) \times p ^ i \times i\\ \sum_{i = 0} ^{n} (_i ^ n) \times i = \sum_{i = 0} ^{n} \frac{n!}{i!(n - i)!} i = \sum_{i = 1} ^{n} \frac{n!}{(i - 1)!(n - i)!}\\ n\sum_{i = 1} ^{n} \frac{(n - 1)!}{(i - 1)!(n - i)!} = n \sum_{i = 1} ^{n} (_{i - 1} ^{n - 1})\\ 原式\frac{np}{k} \sum_{i = 1} ^{n} (_{i - 1} ^{n - 1}) p ^{i - 1} = \frac{np}{k} (p + 1) ^{n - 1}\\ k1i=0n(in)×pi×ii=0n(in)×i=i=0ni!(ni)!n!i=i=1n(i1)!(ni)!n!ni=1n(i1)!(ni)!(n1)!=ni=1n(i1n1)knpi=1n(i1n1)pi1=knp(p+1)n1
考虑后项化简:
1k∑d=0k−1d∑i=0n(in)pi[k∣i−d]对[k∣i−d]进行单位根反演1k∑d=0k−1d∑i=0n(in)×pi×1k∑j=0k−1wkj(i−d)1k2∑d=0k−1d∑j=0k−1wk−jd∑i=0n(in)piwkij1k2∑d=0k−1d∑j=0k−1wk−jd(pwkj+1)n1k2∑j=0k−1(p×wkj+1)n∑d=0k−1d×wk−jd\frac{1}{k} \sum_{d = 0} ^{k - 1} d \sum_{i = 0} ^{n} (_i ^ n) p ^ i[k \mid i - d]\\ 对[k \mid i - d]进行单位根反演\\ \frac{1}{k} \sum_{d = 0} ^{k - 1} d \sum_{i = 0} ^{n} (_i ^ n) \times p ^ i \times \frac{1}{k} \sum_{j = 0} ^{k - 1} w_k ^{j(i- d)}\\ \frac{1}{k ^ 2}\sum_{d = 0} ^{k - 1} d \sum_{j = 0} ^{k - 1} w_{k} ^{-jd} \sum_{i = 0} ^{n} (_i ^ n) p ^ i w_{k} ^{ij}\\ \frac{1}{k ^ 2} \sum_{d = 0} ^{k - 1} d \sum_{j = 0} ^{k - 1} w_{k} ^{-jd} (pw_k ^{j} + 1) ^{n}\\ \frac{1}{k ^ 2} \sum_{j = 0} ^{k - 1} (p \times w_k ^ j + 1) ^n \sum_{d = 0} ^{k - 1} d \times w_{k} ^{-jd}\\ k1d=0k1di=0n(in)pi[kid][kid]k1d=0k1di=0n(in)×pi×k1j=0k1wkj(id)k21d=0k1dj=0k1wkjdi=0n(in)piwkijk21d=0k1dj=0k1wkjd(pwkj+1)nk21j=0k1(p×wkj+1)nd=0k1d×wkjd
∑d=0k−1d×wk−jd\sum\limits_{d = 0} ^{k - 1} d \times w_k ^{-jd}d=0k1d×wkjd形如∑i=0n−1iri\sum\limits_{i = 0} ^{n - 1} i r ^ ii=0n1iri,考虑形如∑i=0n−1(i+1)ri+1\sum\limits_{i = 0} ^{n - 1} (i + 1) r ^ {i + 1}i=0n1(i+1)ri+1这样的式子化简:
∑i=0n−1(i+1)ri+1=r∑i=0n−1iri+∑i=0n−1ri+1=r∑i=0n−1iri+r(rn−1)r−1有∑i=0n−1iri=∑i=0n−1(i+1)ri+1−0r0−nrn所以∑i=0n−1iri=r∑i=0n−1iri+r(rn−1)r−1−nrn整理可得∑i=0n−1iri=nrn−r(rn−1)r−1r−1=nrn(r−1)−r(rn−1)(r−1)2=nrnr−1−r(rn−1)(r−1)2\sum_{i = 0} ^{n - 1} (i + 1) r ^{i + 1} = r\sum_{i = 0} ^{n - 1} i r ^i + \sum_{i = 0} ^{n - 1} r ^{i + 1} = r \sum_{i = 0} ^{n - 1} i r ^ i + \frac{r(r ^ n - 1)}{r - 1}\\ 有\sum_{i = 0} ^{n - 1} i r ^ i = \sum_{i = 0} ^{n - 1} (i + 1) r ^{i + 1} - 0 r ^ 0 - n r ^ n\\ 所以\sum_{i = 0} ^{n - 1} i r ^ i = r \sum_{i = 0} ^{n - 1} i r ^ i + \frac{r(r ^ n - 1)}{r - 1} - n r ^ n\\ 整理可得\sum_{i = 0} ^{n - 1} i r ^ i = \frac{n r ^ n - \frac{r(r ^ n - 1)}{r - 1}}{r - 1} = \frac{n r ^ n(r - 1) - r (r ^ n - 1)}{(r - 1) ^ 2} = \frac{nr ^ n}{ r - 1} - \frac{r(r ^ n - 1)}{(r - 1) ^ 2}\\ i=0n1(i+1)ri+1=ri=0n1iri+i=0n1ri+1=ri=0n1iri+r1r(rn1)i=0n1iri=i=0n1(i+1)ri+10r0nrni=0n1iri=ri=0n1iri+r1r(rn1)nrni=0n1iri=r1nrnr1r(rn1)=(r1)2nrn(r1)r(rn1)=r1nrn(r1)2r(rn1)
特殊情况r=1r = 1r=1∑i=0n−1iri=n(n−1)2\sum\limits_{i = 0} ^{n - 1} i r ^ i = \frac{n(n - 1)}{2}i=0n1iri=2n(n1),对后项再进行化简:
∑d=0k−1d×wk−jd考虑j≠0时,也就是wkj不为1∑d=0k−1d×wk−jd=kwk−jkwk−j−1−wk−j(wk−jk−1)(wk−j−1)2=kwk−j−1后项整体有:1k2∑j=0k−1(p×wkj+1)nkwk−j−1\sum_{d = 0} ^{k - 1} d \times w _k ^{-jd}\\ 考虑j \neq 0时,也就是w_{k} ^{j}不为1\\ \sum_{d = 0} ^{k - 1} d \times w_k ^{-jd} = \frac{k w_k ^ {-jk}}{w_k ^{-j} - 1} - \frac{w_k ^{-j}(w_k ^{-jk} - 1)}{(w_k ^{-j} - 1) ^ 2} = \frac{k}{w_k ^{-j} - 1}\\ 后项整体有:\frac{1}{k ^ 2} \sum_{j = 0} ^{k - 1} (p \times w_k ^ j + 1) ^ n \frac{k}{w_k ^{-j} - 1}\\ d=0k1d×wkjdj=0wkj1d=0k1d×wkjd=wkj1kwkjk(wkj1)2wkj(wkjk1)=wkj1k:k21j=0k1(p×wkj+1)nwkj1k
最后答案为:
npk(p+1)n−1−(k(k−1)2(p+1)nk2+∑j=1k−1(p×wkj+1)nk(wk−j−1))npk(p+1)n−1−((k−1)(p+1)n2k+∑j=1k−1(p×wkj+1)nk(wk−j−1))\frac{np}{k}(p + 1) ^ {n - 1} - \left(\frac{k(k - 1)}{2}\frac{(p + 1) ^ n}{k ^ 2} + \sum\limits_{j = 1} ^{k - 1} \frac{(p \times w_k ^ j + 1) ^ n}{k(w_{k} ^{-j} - 1)}\right)\\ \frac{np}{k}(p + 1) ^ {n - 1} - \left(\frac{(k - 1)(p + 1) ^ n}{2k} + \sum\limits_{j = 1} ^{k - 1} \frac{(p \times w_k ^ j + 1) ^ n}{k(w_{k} ^{-j} - 1)}\right)\\ knp(p+1)n1(2k(k1)k2(p+1)n+j=1k1k(wkj1)(p×wkj+1)n)knp(p+1)n1(2k(k1)(p+1)n+j=1k1k(wkj1)(p×wkj+1)n)

#include <bits/stdc++.h>using namespace std;const int mod = 998244353, N = 2e6 + 10;int w[N], n, p, k;int quick_pow(int a, int n) {int ans = 1;while (n) {if (n & 1) {ans = 1ll * ans * a % mod;}a = 1ll * a * a % mod;n >>= 1;}return ans;
}int inv(int x) {return quick_pow(x, mod - 2);
}int main() {// freopen("in.txt", "r", stdin);// freopen("out.txt", "w", stdout);scanf("%d %d %d", &n, &p, &k);int wn = quick_pow(3, (mod - 1) / k);int ans = 1ll * n * p % mod * quick_pow(p + 1, n - 1) % mod * inv(k) % mod;int res = 1ll * (k - 1) * quick_pow(p + 1, n) % mod * inv(2 * k) % mod;w[0] = 1;for (int i = 1; i < k; i++) {w[i] = 1ll * w[i - 1] * wn % mod;}for (int i = 1; i < k; i++) {res = (res + 1ll * quick_pow(1ll * p * w[i] % mod + 1, n) * inv(1ll * k * (w[k - i] - 1) % mod) % mod) % mod;}ans = (ans - res + mod) % mod;printf("%d\n", ans);return 0;
}

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

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

相关文章

认证方案之初步认识JWT

前言&#xff1a;现在越来越多的项目或多或少会用到JWT&#xff0c;为什么会出现使用JWT这样的场景的呢&#xff1f;假设现在有一个APP&#xff0c;后台是分布式系统。APP的首页模块部署在上海机房的服务器上&#xff0c;子页面模块部署在深圳机房的服务器上。此时你从首页登录…

Java实现生产消费模型的5种方式

** 前言 ** 生产者和消费者问题是线程模型中的经典问题&#xff1a;生产者和消费者在同一时间段内共用同一个存储空间&#xff0c;生产者往存储空间中添加产品&#xff0c;消费者从存储空间中取走产品&#xff0c;当存储空间为空时&#xff0c;消费者阻塞&#xff0c;当存储…

C#.NET 一颗璀璨的全能明星

C# 是微软推出的一种基于.NET框架的、面向对象的高级编程语言&#xff0c;她可以做什么呢&#xff1f;1.桌面开发&#xff0c;WinForm/GUI可视化编程&#xff1a;Windows开发中的葵花宝典&#xff0c;霸主地位至今无出其右&#xff0c;开发效率令人发指&#xff0c;大部分营销软…

#3328. PYXFIB(单位根反演)

#3328. PYXFIB ∑i0⌊nk⌋CnikFik∑i0nCniFi[i≡0(modk)]i≡0(modk)&#xff0c;单位根反演有1k∑j0k−1wkij1k∑i0nCniFi∑j0k−1wkij\sum_{i 0} ^{\lfloor \frac{n}{k} \rfloor} C_{n} ^{i \times k} \times F_{i \times k}\\ \sum_{i 0} ^{n} C_n ^{i} \times F_i \times …

Leetcode 86. 分隔链表

给定一个链表和一个特定值 x&#xff0c;对链表进行分隔&#xff0c;使得所有小于 x 的节点都在大于或等于 x 的节点之前。你应当保留两个分区中每个节点的初始相对位置。示例:输入: head 1->4->3->2->5->2, x 3输出: 1->2->2->4->3->5题目分析…

深入理解 JVM Class文件格式(一)

** 一、JVM体系结构 ** ** 二、class格式文件概述 ** class文件是一种8位字节的二进制流文件&#xff0c; 各个数据项按顺序紧密的从前向后排列&#xff0c; 相邻的项之间没有间隙&#xff0c; 这样可以使得class文件非常紧凑&#xff0c; 体积轻巧&#xff0c; 可以被J…

min_25 推导及例题总结

min_25 筛 一个亚线性筛&#xff0c;复杂度大概是O(n34log⁡n)O(\frac{n ^{\frac{3}{4}}}{ \log n})O(lognn43​​)。 使用min_25min\_25min_25求前缀和&#xff0c;有两个基本特征&#xff1a;① 积性函数&#xff0c;② 满足质数点为多项式。 算法思路 给定n≤1011n \leq…

asp.net core 使用 signalR(一)

asp.net core 使用 signalR&#xff08;一&#xff09;IntroSignalR 是什么&#xff1f;ASP.NET Core SignalR 是一个开源代码库&#xff0c;它简化了向应用添加实时 Web 功能的过程。实时 Web 功能使服务器端代码能够即时将内容推送到客户端。SignalR 的适用对象&#xff1a;需…

深入理解 JVM Class文件格式(二)

** class文件中的特殊字符串 ** 特殊字符串是常量池中符号引用的一部分&#xff0c;包括三种&#xff1a; 类的全限定名&#xff0c; 字段和方法的描述符&#xff0c; 特殊方法的方法名。 下面我们就分别介绍这三种特殊字符串。 &#xff08;1&#xff09; 类的全限定名 在…

P4211 [LNOI2014]LCA(离线 + 在线 做法)

P4211 [LNOI2014]LCA 有一棵根节点为111树&#xff0c;有mmm次询问&#xff0c;每次给定l,r,zl, r, zl,r,z&#xff0c;输出∑ilrdep[lca(i,z)]\sum\limits_{i l} ^{r} dep[lca(i, z)]il∑r​dep[lca(i,z)]。 乍一看这题好像无从下手&#xff0c;仔细想想lca(i,z)lca(i, z)l…

.NET框架之“小马过河”

.NET框架之“小马过河”有许多流行的 .NET框架&#xff0c;大家都觉得挺“重”&#xff0c;认为很麻烦&#xff0c;重量级&#xff0c;不如其它“轻量级”框架&#xff0c;从而不愿意使用。面对形形色色的框架发愁&#xff0c;笔者也曾发愁。但我发现只要敢于尝试&#xff0c;这…

深入理解 JVM Class文件格式(三)

** JVM常量池中各数据项类型详解 ** 关于常量池的大概内容&#xff0c; 已经在 深入理解 JVM Class文件格式&#xff08;一&#xff09; 中讲解过了&#xff0c; 这篇文章中还介绍了常量池中的11种数据类型。 本文的任务是详细讲解这11种数据类型&#xff0c; 深度剖析源文件…

#6073. 「2017 山东一轮集训 Day5」距离(树链剖分 + 永久标记主席树)

#6073. 「2017 山东一轮集训 Day5」距离 给定一颗有nnn个节点带边权的树&#xff0c;以及一个排列ppp&#xff0c;path(u,v)path(u, v)path(u,v)为u,vu, vu,v路径上的点集&#xff0c;dist(u,v)dist(u, v)dist(u,v)为u,vu, vu,v之间的最短路的长度。 有mmm次询问&#xff0c;…

ML.NET 示例:搜索引擎结果排名

ML.NET 示例中文版&#xff1a;https://github.com/feiyun0112/machinelearning-samples.zh-cn/edit/master/samples/csharp/getting-started/Ranking_Web英文原版请访问&#xff1a;https://github.com/dotnet/machinelearning-samples/tree/master/samples/csharp/getting-st…

深入理解 JVM Class文件格式(四)

&#xff08;3&#xff09;CONSTANT_Integer_info 一个常量池中的CONSTANT_Integer_info数据项, 可以看做是CONSTANT_Integer类型的一个实例。 它存储的是源文件中出现的int型数据的值。 同样&#xff0c; 作为常量池中的一种数据类型&#xff0c; 它的第一个字节也是一个tag值…

.Net Core中使用Quartz.Net Vue开即用的UI管理

Quartz.NETQuartz.Net 定制UI维护了常用作业添加、删除、修改、停止、启动功能&#xff0c;直接使用cron表达式设置作业执行间隔&#xff0c;有完整的日志记录。Quartz.NET是一个功能齐全的开源作业调度系统&#xff0c;可用于从最小的应用程序到大型企业系统。Quartz.NET是一个…

Ancient Distance(妙啊!!!) [2020牛客暑期多校训练营(第四场)]

Ancient Distance 给定一颗根为111有nnn个节点的树&#xff0c;每次可以选定树上kkk节点当作特殊节点&#xff0c; 定义dis(u)dis(u)dis(u)为&#xff0c;从u−>1u->1u−>1遇上的第一个特殊点的距离&#xff0c;如果遇不上特殊点则dis(u)dis(u)dis(u)无穷大。 有nn…

深入理解 JVM Class文件格式(五)

&#xff08;8&#xff09; CONSTANT_Class_info 常量池中的一个CONSTANT_Class_info&#xff0c; 可以看做是CONSTANT_Class数据类型的一个实例。 他是对类或者接口的符号引用。 它描述的可以是当前类型的信息&#xff0c; 也可以描述对当前类的引用&#xff0c; 还可以描述对…

混沌工程详细介绍——Netflix持续交付实践探寻

内容来源&#xff1a;DevOps案例深度研究 – Netflix的文化与工程实践战队&#xff08;本文只展示部分案例PPT及研究成果&#xff0c;更多细节请关注案例分享活动&#xff0c;及本公众号&#xff09;。本案例内容贡献者&#xff1a;高金梅&#xff0c;李晓莉&#xff0c;潘雄鹰…

P4175 [CTSC2008]网络管理(整体二分)

P4175 [CTSC2008]网络管理 给定一棵有nnn个节点的树&#xff0c;点有点权&#xff0c;有两种操作&#xff1a;① 修改某个点的点权&#xff0c;② 查询两点路径间的点权第kkk大。 给定u,vu, vu,v&#xff0c;选定111号节点为根节点&#xff0c;设inf(x)inf(x)inf(x)表示从根节…