LGP5591题解
题意很明确,不说了。
前置芝士:单位根反演
也就是:
\]
看到题目给的柿子:
\]
先把那个向下取整拆开:
\]
\]
先看左边的:
\]
由于 \(i\) 这里很难使用二项式定理,又不能爆算,所以考虑通过某种方式把 \(i\) 搞掉,给出引理:
\]
证明是:
\]
于是:
\]
然后使用二项式定理:
\]
现在看向右边:
\]
按照做莫反题的经验,枚举余数:
\]
单位根反演一下:
\]
\]
\]
\]
于是我们考虑怎么快速计算 \(\sum_{i=0}^{n-1}ik^i\)
这看上去很像等比数列,按照等比数列求和公式的推导对这玩意儿做一遍:
为了方便,先设这玩意儿为 \(f(n,k)\)
\]
\]
\]
\]
又因为带入的都是 \(k\) 次单位根,所以上式的 \(k^n=1\)。于是:
\]
所以 \(f(n,k) =\frac n {k-1}\),注意要特判 \(f(n,1) = \frac {n(n-1)} 2\)
整理一下:
\]
贴代码:
#include<cstdio>
const int M=1<<23|5,mod=998244353;
int n,p,k,ans,w[M];
inline int pow(int a,int b=mod-2){
int ans=1;
for(;b;b>>=1,a=1ll*a*a%mod)if(b&1)ans=1ll*ans*a%mod;
return ans;
}
inline int Add(const int&a,const int&b){
return a+b>=mod?a+b-mod:a+b;
}
inline int f(const int&n,const int&k){
if(k==1)return (1ll*n*(n-1)>>1)%mod;
return 1ll*n*pow(k-1)%mod;
}
signed main(){
int i;
scanf("%d%d%d",&n,&p,&k);
w[0]=1;w[1]=pow(3,(mod-1)/k);
for(i=2;i<=k;++i)w[i]=1ll*w[i-1]*w[1]%mod;
for(i=0;i<k;++i)ans=Add(ans,1ll*pow((1ll*p*w[i]+1)%mod,n)*f(k,w[k-i])%mod);
ans=(1ll*n*p%mod*pow(p+1,n-1)%mod-1ll*ans*pow(k)%mod+mod)%mod;
printf("%d",1ll*ans*pow(k)%mod);
}
LGP5591题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- Idea 如何不通过模板创建支持Maven的JavaWeb项目
手动与模板创建的区别,请自行体会. 1. 点击创建项目 2. 不勾选骨架 3.填写项目名称以及该Maven项目坐标(groupid.artifactid.version). 在仓库中,以坐标确定项目. ...
- xargs、sort、uniq命令
xargs.sort.uniq命令,我们由LeetCode的一道题来引入,并使用加以理解: 题目是这样的:写一个 bash 脚本以统计一个文本文件 words.txt 中每个单词出现的频率. word ...
- UIPickView的基本使用
UIPickView和TableView一样,想要展示数据也要设置数据源和代理设置数据源self.pickView.dataSource = self;设置代理self.pickView.delega ...
- 解决sublime代码不提示的问题
如果想让sublime在你输入标签的过程中给你提示,需要按要求开启以下功能. 1.开启代码自动提示功能
- 通过ANT生成MANIFEST.MF中的Class-Path属性
原文地址:http://reason2003.iteye.com/blog/1627353 之前做一个项目,主程序打包成一个jar文件,因为用到了很多第三方的lib包,所以直接通过java命令运行ja ...
- Mysql数据库优化技术之配置篇、索引篇 ( 必看 必看 转)
转自:Mysql数据库优化技术之配置篇.索引篇 ( 必看 必看 ) (一)减少数据库访问对于可以静态化的页面,尽可能静态化对一个动态页面中可以静态的局部,采用静态化部分数据可以生成XML,或者文本文件 ...
- 随机数类 Random
import java.util.Random; /* 随机数类 Random 需求: 编写一个函数随机产生四位的验证码. */ public class Demo5 { public static ...
- 用JavaScript+HTML实现双色球随机摇号效果
用JavaScript+HTML实现双色球随机摇号效果 首先要知道双色球的规则是什么 双色球投注区分为红球号码区和蓝球号码区 红球号码范围为01-33,蓝球号码范围为01-16 双色球每期从33个红球 ...
- 《PHP程序员面试笔试宝典》——如何处理与面试官持不同观点这个问题?
如何巧妙地回答面试官的问题? 本文摘自<PHP程序员面试笔试宝典> 在面试的过程中,求职者所持有的观点不可能与面试官一模一样,在对某个问题的看法上,很有可能两个人相去甚远.当与面试官持不同 ...
- Solution -「六省联考 2017」「洛谷 P3750」分手是祝愿
\(\mathcal{Description}\) Link. 有 \(n\) 盏编号为 \(1\sim n\),已知初始状态的灯,每次操作选取 \(x\in[1,n]\),使得所有编号为 \ ...