Description

WYF有一个精致的k维立方体盒子(2维为正方形,3维为正方体,以此类推)。这个盒子的边长为n,里面有一个边长为n-1的盒子,边长为n-1的盒子里面还有一个边长为n-2的盒子……最里面的盒子边长为m。现在WYF想知道这n-m+1个盒子的k维体积和模p的余数。

Input

输入共一行包含4个正整数k, n, m, p。

Output

输出共一行包含1个正整数,表示n-m+1个盒子的k维体积之和模p的余数。

Sample Input

输入1:4 2 2 97

输入2:1 100 1 10007 

Sample Output

输出1:16【样例说明】边长为2的4维立方体的4维体积为16。

输出25050

Data Constraint

分析

不会数学公式,不方便打,不妨看ZZY大爷的吧

#include <iostream>
#include <cstdio>
using namespace std;
typedef long long ll;
const ll C=1e6;
ll k,n,m,p,s[2010][2010];ll Multi(ll a,ll b) {ll x=a%C,y=b%C,ax=a/C,ay=b/C;return (x*y%p+x*ay%p*C%p+y*ax%p*C%p+ax*ay%p*C%p*C%p)%p;
}
//AntiExplodeMulti

ll Power(ll x,ll y) {ll ans=1;for (;y;y>>=1,x=Multi(x,x)) if (y&1) ans=Multi(ans,x);return ans;}void Pre_Process() {s[0][0]=1;for (int i=1;i<=k;++i) for (int j=1;j<=i;++j) s[i][j]=(s[i-1][j-1]+Multi(j,s[i-1][j]))%p;
}ll Calc(ll x) {ll ans=0;for (int i=0;i<=k;++i) {ll pow=s[k][i];for (ll j=x-i+1;j<=x+1;++j)pow=Multi(pow,j%(i+1)==0?j/(i+1):j);ans=(ans+pow)%p;}return ans;
}int main() {scanf("%lld%lld%lld%lld",&k,&n,&m,&p);ll ans=0;if (n-m<=5000ll) for (ll i=n;i>=m;--i) ans=(ans+Power(i,k))%p;else {Pre_Process();ans=((Calc(n)-Calc(m-1))%p+p)%p;}printf("%lld",ans);
}

View Code

转载于:https://www.cnblogs.com/mastervan/p/10327998.html

[斯特林数][自然数幂和]JZOJ 4220 WYF的盒子相关推荐

  1. [斯特林数][自然数幂和] Jzoj P4220 WYF的盒子

    Description WYF有一个精致的k维立方体盒子(2维为正方形,3维为正方体,以此类推).这个盒子的边长为n,里面有一个边长为n-1的盒子,边长为n-1的盒子里面还有一个边长为n-2的盒子-- ...

  2. 通俗易懂的斯特林数介绍

    通俗易懂的斯特林数介绍 定义 第一类斯特林数 第二类斯特林数 性质 通项 递推 第一类斯特林数 第二类斯特林数 特殊值 第一类斯特林数 第二类斯特林数 快速幂??? 斯特林反演 定义 第一类斯特林数 ...

  3. BZOJ5093 图的价值(NTT+斯特林数)

    显然每个点会提供相同的贡献.于是现在只考虑1号点的贡献.若其度数为i,则在2~n号点选i个连上,剩下的边随便连,这样可以算出答案为 这个式子可以O(n)计算.发现k比较小,于是考虑如何将这个式子化为与 ...

  4. 自然数幂和 斯特林数

    2018 UPD: 其实第二类斯特林数做自然数幂和更简单,这里简单写一下: 由一个基本式子出发 nk=∑i=0k{k i}[n]i n^k=\sum_{i=0}^k\big\{^k_{\ i}\big ...

  5. 第二类斯特林数与自然数幂和

    一般求法 一般求自然数幂和都会用到拉格朗日插值法,但仅当存在逆元的时候能用,给出一种用第二类斯特林数求自然数幂和的方法,时间复杂度是O(k2)O(k2)O(k^2)而不是O(k log k)O(klo ...

  6. 【BJOI2019】勘破神机(下降幂转自然幂)(第一类斯特林数)(特征方程)

    传送门 题解: 完全自己推出来的第一道数学神题. 首先我们知道宽度为222的部分方案数是斐波那契数列. 设fnf_nfn​表示长度为nnn的时候方案数,题目要求的实际上是这个东西: ∑n=lr(fnk ...

  7. 【jzoj4220】【五校联考2day2】【WYF的盒子】【自然数幂和】

    题目大意 WYF有一个精致的k维立方体盒子(2维为正方形,3维为正方体,以此类推).这个盒子的边长为n,里面有一个边长为n-1的盒子,边长为n-1的盒子里面还有一个边长为n-2的盒子--最里面的盒子边 ...

  8. 【学习笔记】自然数幂和

    温馨提示: 本文文档大小约\(11KB\). 引入 自然数幂和是一个我们从小就耳熟能详的经典问题.定义\(S(n,k)=\sum^{n}_{i=0} i^k\), 显然\(S(n,k)\)为关于\(n ...

  9. 51nod 1847 奇怪的数学题(数论/min25筛/杜教筛/斯特林数)

    51nod 1847 奇怪的数学题 求解∑i=1n∑j=1nsgcd(i,j),sgcd\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j),sgcd∑i=1n​∑j=1n​sgcd(i ...

最新文章

  1. 福利 | 《人工智能之数据挖掘》报告发布:北京相关学者流动人次最高(附下载)...
  2. Matlab将多项式的系数设为0
  3. Javascript标准DOM Range操作
  4. python人工智能算法很难_为什么AI很火,但是落地很难?
  5. SQL查询中having和where的异同点
  6. 台式电脑可以连wifi吗_不使用WIFI,手机也可以通过电脑的网络上网
  7. 看见的力量 – (II) 影响地图
  8. 010 Editor for Mac(十六进制编辑器)v12.0
  9. 大数据和数据挖掘有什么关系
  10. STM32F446高性能MCU芯片介绍
  11. 四层PCB核心板制作6——BGA引脚扇出与电路扇孔
  12. 如何躲避红蜘蛛的控制
  13. git已经设置了name和email但是还是提示please tell who you are
  14. STM32F103+RTT从零开始(三)—— S50门禁卡复制
  15. 计算机网络 | 网络概述(什么是互联网 互联网结构)
  16. CAN通信——bdc文件解析
  17. VC++实现简单HTTP服务器
  18. pytorch——计算两个等大无序点云中的距离Earth Mover Distance
  19. (happytime)Onvif Server端口占用 10013问题解决方法
  20. 高中生近视率超过80%!最主要原因青少年缺乏户外活动

热门文章

  1. AndroidStudio 自带UI检测工具Monitor
  2. 直播系统程序,云豹直播提供优质直播程序及云服务
  3. Java byte[] 字节数组 转 二进制 八进制 十进制 十六进制字符串
  4. 机器人学 ---- 机器人的定义/机器人的发展史/机器人的分类
  5. Android Qcom Flashlight学习
  6. redis-Jedis使用
  7. mip-html自动跳转页面,百度MIP技术快速入门(上)
  8. 【CodingNoBorder - 01】无际软工队 - 求职岛:选题和需求分析
  9. 使用 PHP PDO 创建登录和注册表单
  10. 网页注册表单设计原则