题目

\[\large {\sum_{i=0}^n[k|i]C(n,i)}\pmod {998244353}
\]

其中\(n\leq 10^{18}\),\(k=2^p,p\in [0,20]\)


分析

主要是\(k\)条件比较难想,但是貌似有点像NTT的原根,

而且这个组合数也难求,二项式定理是一个将组合数转换为一个快速幂的定理

主要是没写过单位根反演,直接推式子算了

单位根有一个很重要的性质就是

\[\large[n|k]=\frac{1}{n}\sum_{i=0}^{n-1}\omega^{ik}_n
\]

然后这个式子就可以写成

\[\large=\frac{1}{k}\sum_{i=0}^n\sum_{j=0}^{k-1}\omega^{ij}_kC(n,i)
\]

考虑把有关\(i\)的部分丢进里面,那就是

\[\large=\frac{1}{k}\sum_{j=0}^{k-1}\sum_{i=0}^n(\omega^j_k)^{i}C(n,i)
\]

观察到后面直接套用二项式定理就是

\[\large=\frac{1}{k}\sum_{j=0}^{k-1}(\omega^j_k+1)^n
\]

直接\(O(klog_2n)\)求就可以了


upd:补充一条性质

如果要计算某个多项式特定倍数的系数和,

也就是 \(\large \sum_{i=0}^{\lfloor\frac{n}{k}\rfloor}[x^{ik}]f(x)\)

转换一下就是 \(\large \sum_{i=0}^n[k|i][x^i]f(x)\)

单位根反演一下得到 \(\large \frac{1}{k}\sum_{j=0}^{k-1}\sum_{i=0}^n[x^i]f(x)\omega^{ji}_k\)

也就是 \(\large \frac{1}{k}\sum_{j=0}^{k-1}\sum_{i=0}^na_i(\omega^j_k)^i=\frac{1}{k}\sum_{j=0}^{k-1}f(\omega^j_k)\)


代码

#include <cstdio>
#define rr register
using namespace std;
typedef long long lll;
const lll mod=998244353;
lll n,k,omega,ans;
inline lll ksm(lll x,lll y){
rr lll ans=1;
for (;y;y>>=1,x=x*x%mod)
if (y&1) ans=ans*x%mod;
return ans;
}
signed main(){
scanf("%lld%lld",&n,&k);
omega=ksm(3,(mod-1)/k);
for (rr lll i=0,t=1;i<k;++i)
ans+=ksm(t+1,n),t=t*omega%mod;
return !printf("%lld",ans%mod*ksm(k,mod-2)%mod);
}

#单位根反演,二项式定理#LOJ 6247 九个太阳的更多相关文章

  1. loj #6247. 九个太阳 k次单位根 神仙构造 FFT求和原理

    LINK:九个太阳 不可做系列. 构造比较神仙. 考虑FFT的求和原理有 \(\frac{1}{k}\sum_{j=0}^{k-1}(w_k^j)^n=[k|n]\) 带入这道题的式子. 有\(\su ...

  2. loj #6247. 九个太阳

    求 $\sum\limits_{i=1}^n [k | i] \times C_n^i$ 膜 $998244353$ $n \leq 10^{15},k \leq 2^{20}$ $k$ 是 $2$ ...

  3. Loj#6247-九个太阳【单位根反演】

    正题 题目链接:https://loj.ac/p/6247 题目大意 给出\(n,k\)求 \[\sum_{0\leq i\leq n,i|k}\binom{n}{i} \] 对\(998244353 ...

  4. loj 6485 LJJ学二项式定理 —— 单位根反演

    题目:https://loj.ac/problem/6485 先把 \( a_{i mod 4} \) 处理掉,其实就是 \( \sum\limits_{i=0}^{3} a_{i} \sum\lim ...

  5. 【LOJ#6485】LJJ 学二项式定理(单位根反演)

    [LOJ#6485]LJJ 学二项式定理(单位根反演) 题面 LOJ 题解 显然对于\(a0,a1,a2,a3\)分开算答案. 这里以\(a0\)为例 \[\begin{aligned} Ans&am ...

  6. loj#6485. LJJ 学二项式定理(单位根反演)

    题面 传送门 题解 首先你要知道一个叫做单位根反演的东西 \[{1\over k}\sum_{i=0}^{k-1}\omega^{in}_k=[k|n]\] 直接用等比数列求和就可以证明了 而且在模\ ...

  7. [LOJ 6485]LJJ学二项式定理(单位根反演)

    也许更好的阅读体验 \(\mathcal{Description}\) 原题链接 \(T\)组询问,每次给\(n,s,a_0,a_1,a_2,a_3\)求 \(\begin{aligned}\left ...

  8. 数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群)

    数学杂烩总结(多项式/形式幂级数+FWT+特征多项式+生成函数+斯特林数+二次剩余+单位根反演+置换群) 因为不会做目录所以请善用ctrl+F 本来想的是笔记之类的,写着写着就变成了资源整理 一些有的 ...

  9. Note -「单位根反演」学习笔记

    \(\mathcal{Preface}\)   单位根反演,顾名思义就是用单位根变换一类式子的形式.有关单位根的基本概念可见我的这篇博客. \(\mathcal{Formula}\)   单位根反演的 ...

  10. BZOJ3328 PYXFIB 单位根反演

    题意:求 \[ \sum_{i=0}^n[k|i]\binom{n}{i}Fib(i) \] 斐波那契数列有简单的矩阵上的通项公式\(Fib(n)=A^n_{1,1}\).代入得 \[ =\sum_{ ...

随机推荐

  1. 【Android 抓包对抗】代理检查绕过

    1. 安装apk,点进去发现一点就挂 2. apk 拖入到jadx中观察,发现多出检查,一旦满足条件就会退出 .... if (((ConnectivityManager) getSystemServ ...

  2. 格式化占位符%r和!r

    # 作用 都是格式化原形输出,!r用于format格式化,%r用于%格式化 # 示例 a = '123' b = 'hello, {!r}'.format(a) b = 'hello, %r' % ( ...

  3. Centos8上安装python3.X

    一.更新yum源 命令:yum update 二.更新依赖环境 命令:yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sq ...

  4. 需要入门IT行业并且想做java后台小伙伴-简单谈谈后台开发Spring与SpringBoot

    1.Spring能做什么 1.1.Spring的能力 1.2.Spring的生态 https://spring.io/projects/spring-boot 覆盖了: web开发 数据访问 安全控制 ...

  5. 【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内不在可见的问题

    问题描述 在从Storage Account 队列中获取数据(Queue),在门户中,明显看见有数据,但是通过消费端代码去获取的时候,就是无法获取到有效数据的情况.获取消息的代码如下: 问题解答 经过 ...

  6. 【Azure Developer】使用Azure Resource Graph的查询语法的示例

    文章"[Azure Developer]在Azure Resource Graph Explorer中查看当前订阅下的所有资源信息列表并导出(如VM的名称,IP地址内网/公网,OS,区域等) ...

  7. 【Azure 微服务】Service fabric升级结构版本失败问题

    问题描述 Service fabric升级结构版本失败,Service Fabric的可靠性层是白银层,持久性层为青铜层,当把节点从6个直接在虚拟规模集(VMSS)中缩放成了3个.从而引起了Servi ...

  8. centos 7与8修改主机名的各种方法

    hostname 查看当前系统主机名,知道当前主机名为localhost 当然在centos7特地添加了hostnamectl命令查看,修改主机名 使用hostnamectl set-hostname ...

  9. 基于centos7 创建一个jdk8的镜像

    前言: 直接使用docker拉取jdk8镜像因有时区问题,设置后也不生效,所以干脆自己做一个 以下是Dockerfile文件 FROM centos:7 RUN ln -snf /usr/share/ ...

  10. 【学习笔记】 - 基础数据结构 :Link-Cut Tree(进阶篇)

    前言 LCT没题写可以去写树剖和一些线段树合并的题练手 LCT 的概念 原本的树剖是对树进行剖分,剖分为重边和轻边 LCT则是对于树分为虚边和实边,特殊的,LCT可以没有虚边(例:银河英雄传说v2) ...