当前位置: 首页 > news >正文

免费企业网站空间最新国际新闻热点事件

免费企业网站空间,最新国际新闻热点事件,建程网会员,国家电力安全网站两学一做题目描述 在2016年&#xff0c;佳媛姐姐刚刚学习了第二类斯特林数&#xff0c;非常开心。 现在他想计算这样一个函数的值:S(i, j)表示第二类斯特林数&#xff0c;递推公式为:S(i, j) j ∗ S(i − 1, j) S(i − 1, j − 1), 1 < j < i − 1。边界条件为&#xff1a;S(i,…

题目描述

在2016年,佳媛姐姐刚刚学习了第二类斯特林数,非常开心。

现在他想计算这样一个函数的值:
S(i, j)表示第二类斯特林数,递推公式为:
S(i, j) = j ∗ S(i − 1, j) + S(i − 1, j − 1), 1 <= j <= i − 1。
边界条件为:S(i, i) = 1(0 <= i), S(i, 0) = 0(1 <= i)
你能帮帮他吗?

输入

输入只有一个正整数

输出

 输出f(n)。由于结果会很大,输出f(n)对998244353(7 × 17 × 223 + 1)取模的结果即可。1 ≤ n ≤ 100000

样例输入

3


题解

NTT

考虑第二类斯特林数的公式:

 

(第二类斯特林数的含义是把n个数分成m个非空集合的方案数,考虑容斥,如果不考虑集合的无序性,至少有i个空集的方案数为$C_m^i*(m-i)^n$,除以$m!$后容斥一下,故有此式)

然后答案就是:

很容易发现后面的$\sum$是一个卷积的形式,设$f(x)=\frac{(-1)^x}{x!},g(x)=\frac{\sum\limits_{i=0}^nx^i}{x!}$,那么答案为$\sum\limits_{j=0}^nh(j)=\sum\limits_{j=0}^nf*g(j)$。

使用NTT加速求解,时间复杂度为$O(n\log n)$。

注意当首项为1时,等比数列求和公式不能使用,需要特判。

#include <cstdio>
#include <cstring>
#include <algorithm>
#define N 300010
using namespace std;
typedef long long ll;
const ll mod = 998244353;
ll fac[N] , p[N] , a[N] , b[N];
ll pow(ll x , ll y)
{ll ans = 1;while(y){if(y & 1) ans = ans * x % mod;x = x * x % mod , y >>= 1;}return ans;
}
void ntt(ll *a , int len , int flag)
{int i , j , k;for(i = k = 0 ; i < len ; i ++ ){if(i > k) swap(a[i] , a[k]);for(j = len >> 1 ; (k ^= j) < j ; j >>= 1);}for(k = 2 ; k <= len ; k <<= 1){ll wn = pow(3 , (mod - 1) / k);if(flag == -1) wn = pow(wn , mod - 2);for(i = 0 ; i < len ; i += k){ll w = 1 , t;for(j = i ; j < i + (k >> 1) ; j ++ , w = w * wn % mod)t = w * a[j + (k >> 1)] % mod , a[j + (k >> 1)] = (a[j] - t + mod) % mod , a[j] = (a[j] + t) % mod;}}if(flag == -1){k = pow(len , mod - 2);for(i = 0 ; i < len ; i ++ ) a[i] = a[i] * k % mod;}
}
int main()
{int n , i , len = 1;ll inv = 1 , ans = 0;scanf("%d" , &n);a[0] = b[0] = fac[0] = p[0] = 1;for(i = 1 ; i <= n ; i ++ ){fac[i] = fac[i - 1] * i % mod , p[i] = p[i - 1] * 2 % mod;inv = inv * pow(i , mod - 2) % mod;if(i & 1) a[i] = mod - inv;else a[i] = inv;if(i == 1) b[i] = n + 1;else b[i] = (pow(i , n + 1) - 1) * (pow(i - 1 , mod - 2)) % mod * inv % mod;}while(len <= 2 * n) len <<= 1;ntt(a , len , 1) , ntt(b , len , 1);for(i = 0 ; i < len ; i ++ ) a[i] = a[i] * b[i] % mod;ntt(a , len , -1);for(i = 0 ; i <= n ; i ++ ) ans = (ans + fac[i] * p[i] % mod * a[i]) % mod;printf("%lld\n" , ans);return 0;
}

 

转载于:https://www.cnblogs.com/GXZlegend/p/7412922.html

http://www.lbrq.cn/news/2474335.html

相关文章:

  • 本科毕业 做网站编辑百度推广投诉电话客服24小时
  • 做游戏类型的网站的好处湛江seo网站管理
  • 做政协网站的目的是什么市场调研报告包括哪些内容
  • 建材 网站 案例三门峡网站seo
  • 哪个网站的域名到期直接注册惠州seo快速排名
  • 企业服务平台公众号广州seo公司
  • 上海网上做鸭子的网站简述网络营销的含义
  • javaee做网站建设seo中介平台
  • 网站建设需要会百度指数关键词工具
  • 地图设计网站seo职位要求
  • 汕头模版网站建设正规手游代理平台有哪些
  • 哪个网站做批韩国护肤品批发seo专业培训费用
  • 淮安网站建设自助快速建站
  • 品牌英语扬州网站seo
  • 外贸网站模板大全网页制作代码大全
  • 作业不会做网站上找人做靠谱吗朋友圈广告推广
  • 云南建设网站首页青岛百度竞价
  • 商洛免费做网站公司最新推广方法
  • 网站建设 技术支持 阿里太原百度seo排名
  • 网站开发 发票哈尔滨推广优化公司
  • 个人网站设计规划书个人主页网页设计模板
  • 电商网站建站怎样做自己的网站
  • 产品网站别人是如何做优化的百度推广营销中心
  • 博物馆网站做的最好的谷歌seo详细教学
  • 网站建设 百度推广网站推广策划方案
  • 做网站推广需要花多少钱网奇seo培训官网
  • 全是图片的网站怎么做seo网络营销推广方式包括
  • 网站建设海南手机端seo
  • 最好的外贸网站建设引擎搜索技巧
  • 全国开发一个网站需要多少钱全国疫情的最新数据
  • 小架构step系列26:Spring提供的validator
  • 开源智能体框架(Agent Zero)
  • 协作机器人掀起工厂革命:码垛场景如何用数据重塑制造业命脉?
  • 屏幕适配--像素篇
  • 前端核心进阶:从原理到手写Promise、防抖节流与深拷贝
  • 杂谈:前端开发中的常见问题