前言

蒟蒻代码惨遭卡常,根本跑不过

前置芝士——单位根反演

单位根有这样的性质:

\[\frac{1}{n}\sum_{i=0}^{n-1}\omega_{n}^{ki}=\left[n|k\right]
\]

所以可以得出单位根反演的式子

如果有\(f(x)=\sum_{i=0}a_ix^i\),就可以推出

\[\sum_{i=0}^na_i\left[d|i\right]=\frac{1}{d}\sum_{p=0}^{d-1}f(\omega_d^p)
\]

证明可以把上面的式子代入,然后交换和号

思路

这道题要求的东西是这样的

\[\sum_{i=0}^3a_i\sum_{j=0}^n\left(\begin{matrix}n\\j\end{matrix}\right)s^j\left[j\%4=i\right]
\]

写出\(\sum_{j=0}^n\left(\begin{matrix}n\\j\end{matrix}\right)s^j\)的生成函数,由二项式定理得到是\((sx+1)^n\)

不妨设i=0

则要求

\[\sum_{j=0}^n\left(\begin{matrix}n\\j\end{matrix}\right)s^j\left[4|j\right]
\]

直接套公式

原式等于

\[\frac{1}{4}\sum_{p=0}^3f(\omega_4^p)
\]

对于i等于1,2,3,相当于原式向右边“移动”了1,2,3个位置

乘以自变量的对应倍即可

代码

蒟蒻的代码不知道为什么跑的辣么慢,只有60pts

#include <cstdio>
#include <algorithm>
#include <cstring>
#define int long long
using namespace std;
int T,a[4],s,n,MOD=998244353,W[5]={1,911660635,998244352,86583718},inv=748683265;
int pow(int a,int b){
int ans=1;
while(b){
if(b&1)
ans=(ans*a)%MOD;
a=(a*a)%MOD;
b>>=1;
}
return ans;
}
signed main(){
scanf("%lld",&T);
while(T--){
scanf("%lld %lld %lld %lld %lld %lld",&n,&s,&a[0],&a[1],&a[2],&a[3]);
int ans=0;
for(int i=0;i<4;i++){
int mid=0;
for(int j=0;j<4;j++)
mid=(mid+pow((s*W[j]%MOD+1%MOD)%MOD,n)*pow(W[i*j%4],MOD-2)%MOD)%MOD;
ans=(ans+a[i]*mid%MOD*inv%MOD)%MOD;
}
printf("%lld\n",ans);
}
return 0;
}

LOJ 6485 LJJ学多项式的更多相关文章

  1. loj #6485. LJJ 学二项式定理 (模板qwq)

    $ \color{#0066ff}{ 题目描述 }$ LJJ 学完了二项式定理,发现这太简单了,于是他将二项式定理等号右边的式子修改了一下,代入了一定的值,并算出了答案. 但人口算毕竟会失误,他请来了 ...

  2. LOJ #6485 LJJ 学二项式定理

    QwQ LOJ #6485 题意 求题面中那个算式 题解 墙上暴利 设$ f(x)=(sx+1)^n$ 假设求出了生成函数$ f$的各项系数显然可以算出答案 因为模$ 4$的缘故只要对于每个余数算出次 ...

  3. LOJ 6485 LJJ 学二项式定理——单位根反演

    题目:https://loj.ac/problem/6485 \( \sum\limits_{k=0}^{3}\sum\limits_{i=0}^{n}C_{n}^{i}s^{i}a_{k}[4|(i ...

  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 学二项式定理(单位根反演)

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

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

    新学的黑科技,感觉好nb ~ #include <bits/stdc++.h> #define ll long long #define setIO(s) freopen(s". ...

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

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

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

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

  9. LOJ6485 LJJ 学二项式定理 解题报告

    LJJ 学二项式定理 题意 \(T\)组数据,每组给定\(n,s,a_0,a_1,a_2,a_3\),求 \[ \sum_{i=0}^n \binom{n}{i}s^ia_{i\bmod 4} \] ...

随机推荐

  1. Sitecore CMS中配置项目图标

    在Sitecore中,图标通常用于通过各种不同的模板类型快速区分项目.文章可能使用红色图标,而列表页面可能使用蓝色.项目上设置的图标可以在内容树中看到,也可以在选择项目时在内容编辑器的顶部看到. 从功 ...

  2. mybatis oracle -批量插入,存在则更新

    <insert id="batchUpdatePBWUserInfo" parameterType="java.util.List"> MERGE ...

  3. kali长时间未使用导致数字签名过期无法更新源解决办法

    kali长时间未使用,数字签名会过期,从而导致无法更新源. apt-get update:从源(Source)服务器那里下载最新的软件包列: apt-get upgrade:对已经安装的软件包本身进行 ...

  4. Jersey入门——注解的使用

    本文主要解释Jersey中各种注解的使用 package com.coshaho.learn.jersey; import java.net.URI; import javax.ws.rs.Consu ...

  5. 关于SQL语句中的distinct和group by

    两种都能实现去重功能.区别: distinct只是将重复的行从结果中出去: group by是按指定的列分组,一般这时在select中会用到聚合函数. distinct是把不同的记录显示出来 grou ...

  6. 20165215 2017-2018-2 《Java程序设计》第5周学习总结

    20165215 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 chapter7 Java支持在一个类中声明另外一个类,这样的类称作内部类,而包含内部类的类 ...

  7. AtCoder Beginner Contest 044 A - 高橋君とホテルイージー / Tak and Hotels (ABC Edit)

    Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement There is a hotel with ...

  8. Python之pytest 基础

    pytest是一个非常成熟的全功能的Python测试框架,主要特点有以下几点:1.简单灵活,容易上手:2.支持参数化:3.能够支持简单的单元测试和复杂的功能测试,还可以用来做selenium/appn ...

  9. 将GPS获得的UTC时间转换成本地时间的方法(转)

    源: 将GPS获得的UTC时间转换成本地时间的方法 参考: gps时转换为utc时间方法

  10. Jquery autocomplete.js输入框联想补全功能

    Jquery autocomplete.js插件下载地址:http://files.cnblogs.com/files/jinzhiming/autocomplete.rar 有两种用法,一种是直接使 ...