尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

P4091 [HEOI2016/TJOI2016] 求和

P4091 [HEOI2016/TJOI2016] 求和
📅 发布时间:2026/6/19 13:55:55

P4091 [HEOI2016/TJOI2016] 求和

令 \(S(n,m)\) 表示第二类斯特林数。

对以下式子求和:

\[\sum_{i=0}^n\sum_{j=0}^i 2^j\times j!\times S(i,j) \]

\(n\le 10^5\)(但是有线性做法


\(\forall m>n,S(n,m)=0\),所以将第二个求和上界改为 \(n\),答案不变。

考虑对于第二类斯特林数的容斥:

\[S(n,m)=\frac 1{m!}\sum_{k=0}^m(-1)^{m-k}\binom mkk^n \]

代入原式:

\[\begin{align*} &\sum_{i=0}^n\sum_{j=0}^i 2^j\times j!\times S(i,j) \\=&\sum_{i=0}^n\sum_{j=0}^n2^j\sum_{k=0}^j\binom jk(-1)^{j-k}k^i \\=&\sum_{j=0}^n2^j\sum_{k=0}^j\binom jk(-1)^{j-k}\sum_{i=0}^nk^i \end{align*} \]

令 \(a_k=\sum_{i=0}^nk^i\),\(a_k\) 可以做到线性预处理。

\[\begin{align*} &\sum_{j=0}^n2^j\sum_{k=0}^j\binom jk(-1)^{j-k}a_k \\=&\sum_{j=0}^n\sum_{k=0}^j2^k2^{j-k}(-1)^{j-k}\frac {j!}{k!(j-k)!}a_k \\=&\sum_{0\le i+k\le n}(i+k)!\frac {(-2)^i}{i!}\frac{2^ka_k}{k!} \end{align*} \]

最后一步做了换元 \(i=j-k\)。可以发现这是一个卷积的形式,于是可以做到 \(\mathcal O(n\log n)\)。


能不能做到更好?

假如我们有一个生成函数 \(F(x)=\sum_{i=0}^na_ix^i\)。

那么 \(F(x+p)\) 中第 \(j\) 项的系数是多少?

\[\begin{align*} &[x^k]F(x+p) \\=&[x^k]\sum_{i=0}^na_i(x+p)^i \\=&[x^k]\sum_{i=0}^na_i\sum_{k=0}^n \binom ikx^{k}p^{i-k} \\=&\sum_{i=k}^n\binom ikp^{i-k}a_i \end{align*} \]

对于原式,交换求和顺序:

\[\begin{align*} &\sum_{j=0}^n2^j\sum_{k=0}^j\binom jk(-1)^{j-k}a_k \\=&\sum_{k=0}^na_k\sum_{j=k}^n\binom jk(-1)^{j-k}2^j \end{align*} \]

我们发现,这正好和上面的形式相符。如果取

\[F(x)=\sum_{i=0}^n2^jx^j=\frac{(2x)^{n+1}-1}{2x-1} \]

那么上式的后半部分就是 \(F(x-1)\) 里 \(x^k\) 项的系数。

\[F(x-1)=2^{n+1}\frac{(x-1)^{n+1}-1}{2x-3} \]

二项式定理得到分子的各项系数,除以一次式可以直接递推处理。

于是我们 \(\mathcal O(n)\) 地解决了这个问题。


code
#include <algorithm>
#include <iostream>
#include <bitset>const int MOD = 998244353;
auto gmod = [](auto&& x) { return x - (x >= MOD) * MOD; };
struct mi {int w; mi(){}mi(int _w): w(_w) {}inline int load() { return w; }inline bool empty() { return !w; }
};
inline mi operator + (const mi& x, const mi& y) { return gmod(x.w + y.w); }
inline mi operator - (const mi& x, const mi& y) { return gmod(x.w + MOD - y.w); }
inline mi operator - (const mi& x) { return x.w ? MOD - x.w : 0; }
inline mi operator * (const mi& x, const mi& y) { return 1ull * x.w * y.w %MOD; }
inline void operator += (mi& x, const mi& y) { x.w = gmod(x.w + y.w); }
inline void operator -= (mi& x, const mi& y) { x.w = gmod(x.w + MOD - y.w); }
inline void operator *= (mi& x, const mi& y) { x.w = 1ull * x.w * y.w %MOD; }
inline mi fpow(mi x, int k) { mi r = 1; for(; k; k >>= 1, x *= x) if(k & 1) r *= x; return r; }
inline std::istream& operator>> (std::istream& i, mi& m) { i >> m.w; return i; }namespace # {const int N = 1e5 + 7;mi frac[N], ifac[N], inv[N];
inline void init(int n) {frac[0] = 1;for(int i = 1; i <= n; ++i)frac[i] = frac[i-1] * i;ifac[n] = fpow(frac[n], MOD-2);for(int i = n; i >= 1; --i)ifac[i-1] = ifac[i] * i;inv[0] = 1;for(int i = 1; i <= n; ++i)inv[i] = ifac[i] * frac[i-1];
}
inline mi C(int n, int m) { return frac[n] * ifac[m] * ifac[n-m]; }std::bitset<N> ip;
std::basic_string<int> pr;
mi _pow[N];
void sieve(int n, int power) {for(int i = 2; i <= n; ++i) {if(!ip[i]) pr += i, _pow[i] = fpow(i, power);for(int& p: pr) {if(i * p > n) break;ip[i * p] = 1, _pow[i * p] = _pow[i] * _pow[p];if(i % p == 0) break;}}
}int n;
mi tmp[N], poly[N];inline void main() {std::cin >> n;init(n+1), sieve(n+1, n+1);	mi p2 = fpow(2, n+1);for(int i = 0; i <= n + 1; ++i) {tmp[i] = p2 * C(n + 1, i);if((n + 1 - i) & 1) tmp[i] = -tmp[i];}tmp[0] -= 1;mi inv2 = fpow(2, MOD-2);auto calc = [](int k) {return k == 0 ? 1 : k == 1 ? n + 1 : (_pow[k] - 1) * inv[k-1];};mi ans = 0;for(int i = n + 1; i >= 1; --i) {auto coef = tmp[i] * inv2;ans += coef * calc(i-1);tmp[i-1] += coef * 3;}std::cout << ans.load() << "\n";
}};int main() {#::main();
}

本文来自博客园,作者:CuteNess,转载请注明原文链接:https://www.cnblogs.com/CuteNess/p/19198272

相关新闻

  • 职场人高效录屏与剪辑指南:OBS+QuickTime实用搭配
  • 第十四节:幂等性-删token方案优化升级方案实操
  • HDU-6806:非 DP 做法

最新新闻

  • 2026年湖北百合种植基地推荐排行榜:百合技术/百合回收/百合种苗案例参考 - 新闻快传
  • 告别龟速与超时:全方位解决 git clone 网络难题的实战指南
  • 嵌入式MCU电气特性与FLASH操作深度解析:从数据手册到稳定设计
  • 2026 郑州八大装修公司综合实力排行榜 - GrowthUME
  • 爱回收到店估价和到手价差多少?iPhone 15 Pro实测报告 - 新闻快传
  • 2026沈阳非急救转运救护车TOP5盘点|辽中同城、浑河跨桥、棋盘山山地、院区转诊首选康跃转运 - 吉修匠

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号