博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷3321 SDOI2015 序列统计
阅读量:6717 次
发布时间:2019-06-25

本文共 1117 字,大约阅读时间需要 3 分钟。

懒得放传送【大雾

有趣的一道题

前几天刚好听到Creed_神犇讲到相乘转原根变成卷积的形式

看到这道题当然就会做了啊w

对于m很小 我们暴力找原根 如果你不会找原根的话 出门左转百度qwq

找到原根以后所有数转成原根的幂次然后卷积就吼了啊

多项式卡速米 由于是循环卷积所以每一次还要转回系数相加再转回来

所以是不优美的O(nlg^2n) =v=

代码在这里。

//Love and Freedom.#include
#include
#include
#include
#define inf 20021225#define ll long long#define wph 1004535809ll#define mxn 810000using namespace std;int ksm(int bs,int mi,int mdn){ int ans=1; while(mi) { if(mi&1) ans=(ll)ans*bs%mdn; bs=(ll)bs*bs%mdn; mi>>=1; } return ans;}int n,m,x,s;int G,rev[mxn<<1];int id[mxn];void find_G(){ for(int i=2;i<=m;i++) { memset(id,0,sizeof(id)); int tmp=1,j; for(j=0;j
i) swap(a[rev[i]],a[i]); for(int k=2,mid=1;k<=n;k<<=1,mid<<=1) { int Wn=ksm(3,(wph-1)/k,wph); if(f) Wn=ksm(Wn,wph-2,wph); for(int i=0,w=1;i
>1]>>1)|((i&1)<<(l-1)); return lim;}void poly_ksm(int *ans,int *bs,int n,int mi){ //for(int i=0;i
>=1; } NTT(ans,lim,1); //for(int i=0;i

 

转载于:https://www.cnblogs.com/hanyuweining/p/10321885.html

你可能感兴趣的文章
购物车特效收集
查看>>
Access中一句查询代码实现Excel数据导入导出
查看>>
2015第49周二
查看>>
Sphinx/Coreseek 4.1的安装流程
查看>>
邮件服务器Postfix的管理 重启php-fpm
查看>>
Android Studio 项目代码全部消失--出现原因及解决方法
查看>>
SQL Server---存储过程
查看>>
MySQL Performance-Schema(二) 理论篇
查看>>
搭建SSH详细步骤及相关说明
查看>>
Android IOS WebRTC 音视频开发总结(五五)-- 音视频通讯中的抗丢包与带宽自适应原理...
查看>>
Libgdx: 将Texturepacker打包的PNG图片还原成一张一张的单个的
查看>>
再议Swift操作符重载
查看>>
pc机进入android的shell
查看>>
javascript Date format(js日期格式化)
查看>>
Loadrunner中参数化实战(6)-Random+Each occurrence
查看>>
tomcatserver解析(六)-- Acceptor
查看>>
asp.net判断访问者是否来自移动端
查看>>
Python 一些常用模块的安装
查看>>
严苛模式(StrictMode)
查看>>
牛客网-《剑指offer》-跳台阶
查看>>