【BZOJ5339】[TJOI2018]教科书般的亵渎(斯特林数)
【BZOJ5339】[TJOI2018]教科书般的亵渎(斯特林数)
题面
题解
显然交亵渎的次数是\(m+1\)。
那么这题的本质就是让你求\(\sum_{i=1}^n i^{m+1}\),中间再减掉几项直接暴力就行了。
所以只要考虑求这个东西。
比如说斯特林数?
\]
那么
\sum_{i=1}^n i^m&=\sum_{i=1}^n\sum_{j=0}^m {i\choose j}j!\begin{Bmatrix}m\\j\end{Bmatrix}\\
&=\sum_{j=0}^m j!\begin{Bmatrix}m\\j\end{Bmatrix}\sum_{i=1}^n{i\choose j}\\
&=\sum_{j=0}^m j!\begin{Bmatrix}m\\j\end{Bmatrix}{n+1\choose j+1}\\
&=\sum_{j=0}^m \begin{Bmatrix}m\\j\end{Bmatrix}\frac{(n+1)^{\underline {j+1}}}{j+1}
\end{aligned}\]
这样子可以做到\(O(m^2)\)。
斯特林数直接\(O(m^2)\)暴力预处理即可。
讲个笑话,这题我long long都没开就过了。
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
#define MOD 1000000007
#define ll long long
inline ll read()
{
ll x=0;bool t=false;char ch=getchar();
while((ch<'0'||ch>'9')&&ch!='-')ch=getchar();
if(ch=='-')t=true,ch=getchar();
while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar();
return t?-x:x;
}
int fpow(int a,int b){int s=1;while(b){if(b&1)s=1ll*s*a%MOD;a=1ll*a*a%MOD;b>>=1;}return s;}
int S[60][60];
int Calc(int n,int m)
{
int ret=0;n+=1;
for(int j=0;j<=m;++j)
{
int s=1;for(int k=0;k<=j;++k)s=1ll*s*(n-k+MOD)%MOD;
ret=(ret+1ll*S[m][j]*s%MOD*fpow(j+1,MOD-2))%MOD;
}
return ret;
}
ll n,a[55];int m;
int main()
{
S[0][0]=1;
for(int i=1;i<=55;++i)
for(int j=1;j<=i;++j)
S[i][j]=(1ll*S[i-1][j]*j+S[i-1][j-1])%MOD;
int T=read();
while(T--)
{
n=read();m=read();for(int i=1;i<=m;++i)a[i]=read();
sort(&a[1],&a[m+1]);int ans=0;
for(int i=0;i<=m;++i)
{
ans=(ans+Calc((n-a[i])%MOD,m+1))%MOD;
for(int j=i+1;j<=m;++j)ans=(ans+MOD-fpow((a[j]-a[i])%MOD,m+1))%MOD;
}
printf("%d\n",ans);
}
return 0;
}
【BZOJ5339】[TJOI2018]教科书般的亵渎(斯特林数)的更多相关文章
- [BZOJ5339] [TJOI2018]教科书般的亵渎
题目链接 BZOJ题面. 洛谷题面. Solution 随便推一推,可以发现瓶颈在求\(\sum_{i=1}^n i^k\),关于这个可以看看拉格朗日插值法. 复杂度\(O(Tm^2)\). #inc ...
- 洛谷 P4593 [TJOI2018]教科书般的亵渎
洛谷 P4593 [TJOI2018]教科书般的亵渎 神仙伯努利数...网上一堆关于伯努利数的东西但是没有证明,所以只好记结论了? 题目本质要求\(\sum_{i=1}^{n}i^k\) 伯努利数,\ ...
- 【bzoj5339】[TJOI2018]教科书般的亵渎(拉格朗日插值/第二类斯特林数)
传送门 题意: 一开始有很多怪兽,每个怪兽的血量在\(1\)到\(n\)之间且各不相同,\(n\leq 10^{13}\). 然后有\(m\)种没有出现的血量,\(m\leq 50\). 现在有个人可 ...
- Luogu P4593 [TJOI2018]教科书般的亵渎
亵渎终于离开标准了,然而铺场快攻也变少了 给一个大力枚举(无任何性质)+艹出自然数幂和的方法,但是复杂度极限是\(O(k^4)\)的,不过跑的好快233 首先简单数学分析可以得出\(k=m+1\),因 ...
- BZOJ5339:[TJOI2018]教科书般的亵渎——题解
https://www.lydsy.com/JudgeOnline/problem.php?id=5339 https://www.luogu.org/problemnew/show/P4593 小豆 ...
- 并不对劲的复健训练-bzoj5339:loj2578:p4593:[TJOI2018]教科书般的亵渎
题目大意 题目链接 题解 先将\(a\)排序. \(k\)看上去等于怪的血量连续段的个数,但是要注意当存在\(a_i+1=a_{i+1}\)时,虽然它们之间的连续段为空,但是还要算上:而当\(a_m= ...
- BZOJ.5339.[TJOI2018]教科书般的亵渎(拉格朗日插值) & 拉格朗日插值学习笔记
BZOJ 洛谷 题意的一点说明: \(k\)次方这个\(k\)是固定的,也就是最初需要多少张亵渎,每次不会改变: 因某个怪物死亡引发的亵渎不会计分. 不难发现当前所需的张数是空格数+1,即\(m+1\ ...
- [TJOI2018]教科书般的亵渎
嘟嘟嘟 题面挺迷的,拿第一个样例说一下: 放第一次亵渎,对答案产生了\(\sum_{i = 1} ^ {10} i ^ {m + 1} - 5 ^ {m + 1}\)的贡献,第二次亵渎产生了\(\su ...
- P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)
传送门 首先所有亵渎的张数\(k=m+1\),我们考虑每一次使用亵渎,都是一堆\(i^k\)之和减去那几个没有出现过的\(j^k\),对于没有出现过的我们可以直接快速幂处理并减去,所以现在的问题就是如 ...
随机推荐
- java中的代码块是什么意思,怎么用
代码块是一种常见的代码形式.他用大括号“{}”将多行代码封装在一起,形成一个独立的代码区,这就构成了代码块.代码块的格式如下: 方法/步骤 普通代码块:是最常见的代码块,在方法里用一对“{ ...
- latex中插入eps文件
\documentclass{article} \usepackage{graphicx}\usepackage{epstopdf} \begin{document}\begin{figure} \ ...
- PAT L3-016 二叉搜索树的结构
https://pintia.cn/problem-sets/994805046380707840/problems/994805047903240192 二叉搜索树或者是一棵空树,或者是具有下列性质 ...
- API接口TOKEN设计
首先需要知道API是什么? API(Application Programming Interface)即应用程序接口.你可以认为 API 是一个软件组件或是一个 Web 服务与外界进行的交互的接 ...
- python读取文件内的IP信息 练习
代码如下: #导包 import fileinput import re def readArw(): for line in fileinput.input(r"G:/raw.txt&qu ...
- JS—ajax及async和defer的区别
###1.ajax “Asynchronous Javascript And XML”(异步 JavaScript 和 XML) 使用: 如不考虑旧版本浏览器兼容性, // 第一步创建xhr对象 v ...
- [转帖]SAP一句话入门:Plant Maintenance
SAP一句话入门:Plant Maintenance http://blog.vsharing.com/MilesForce/A618273.html PM就是Plant Maintenance(本文 ...
- 字符串正则替换replace第二个参数是函数
zepto中 //将字符串转成驼峰式的格式 camelize = function (str) { return str.replace(/-+(.)?/g, function (match, chr ...
- 使用Elasticsearch 出现的拒绝连接
pom 文件 spring: elasticsearch: jest: uris: http://192.168.124.142:9201 # data: # elasticsearch: # clu ...
- springboot 如何操作redis
1.首先应该引入 依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...