博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P4091 [HEOI2016/TJOI2016]求和
阅读量:5128 次
发布时间:2019-06-13

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

首先发现j是可以枚举到n的,因为j>i时s(i,j)为0。

把第二类斯特林数按照容斥的定义转换一下。

由于第二类斯特林数是一个卷积的形式,可以枚举i后ntt求解,复杂度O(n^2logn)

变换一下枚举的顺序,把i移到最内层。

发现可以预处理一下sigema i^0+i^1+i^2+i^3.....i^n然后就o(nlogn)了。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 1100000#define L 1100000#define eps 1e-7#define inf 1e9+7#define db double#define ll long long#define ldb long doubleusing namespace std;inline ll read(){ char ch=0; ll x=0,flag=1; while(!isdigit(ch)){ch=getchar();if(ch=='-')flag=-1;} while(isdigit(ch)){x=(x<<3)+(x<<1)+ch-'0';ch=getchar();} return x*flag;}const ll d=3,mo=998244353;ll ksm(ll x,ll k){ ll ans=1; while(k) { if(k&1)ans=1ll*ans*x%mo; k>>=1; x=1ll*x*x%mo; } return ans;}ll inv(ll x){return ksm(x,mo-2);}ll rev[N];void ntt(ll *f,ll n,ll flag){ for(ll i=0;i
>1]>>1)+(i&1)*(n>>1); for(ll i=0;i

转载于:https://www.cnblogs.com/Creed-qwq/p/10211460.html

你可能感兴趣的文章
Describe in brief Databases and SQL Server Databases Architecture.
查看>>
IP地址定位到物理地址
查看>>
字符集
查看>>
如何在Windows Azure虚拟机上部署OpenLogic CentOS镜像
查看>>
Java 多线程------01
查看>>
八大排序之堆排序
查看>>
LFS Linux From Scratch 笔记2(经验非教程)BLFS
查看>>
TensorFlow|非线性回归
查看>>
网站安全统一监测平台(WebPecker)
查看>>
java 调用 phantomjs
查看>>
类间关系总结
查看>>
properties配置文件读写,追加
查看>>
QR code 乱谈(一)
查看>>
shit IE & no table `border-collapse: collapse;`
查看>>
华为实习记录第二天
查看>>
element-ui国际化探索(大型项目适用)
查看>>
2014 Multi-University Training Contest 6 部分题目解题报告
查看>>
Effective.Java第78-90条(同步相关)
查看>>
【mysql优化1】表的优化与列类型选择
查看>>
Java面试题集(三)
查看>>