题目链接

BZOJ题面

洛谷题面

Solution

随便推一推,可以发现瓶颈在求\(\sum_{i=1}^n i^k\),关于这个可以看看拉格朗日插值法

复杂度\(O(Tm^2)\)。

#include<bits/stdc++.h>
using namespace std; #define int long long void read(int &x) {
x=0;int f=1;char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-f;
for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';x*=f;
} void print(int x) {
if(x<0) putchar('-'),x=-x;
if(!x) return ;print(x/10),putchar(x%10+48);
}
void write(int x) {if(!x) putchar('0');else print(x);putchar('\n');} #define lf double
#define ll long long const int maxn = 100;
const int inf = 1e9;
const lf eps = 1e-8;
const int mod = 1e9+7; int qpow(int a,int x) {
int res=1;a%=mod;
for(;x;x>>=1,a=1ll*a*a%mod) if(x&1) res=1ll*res*a%mod;
return res;
} int m,a[maxn],pw[maxn],pre[maxn],suf[maxn],fac[maxn],ifac[maxn]; int calc(int n,int k) {
k++;suf[k+1]=fac[0]=ifac[0]=1;pre[0]=n%mod;
for(int i=1;i<=k;i++) pre[i]=pre[i-1]*((n-i)%mod)%mod;
for( for(int i=1;i<=k;i++) pre[i]=pre[i-1]*((n-i)%mod)%mod;
for(int i=k;~i;i--) suf[i]=suf[i+1]*((n-i)%mod)%mod;
int i=k;~i;i--) suf[i]=suf[i+1]*((n-i)%mod)%mod;
for(int i=1;i<=k;i++) fac[i]=fac[i-1]*i%mod;
ifac[k]=qpow(fac[k],mod-2);
for(int i=k-1;i;i--) ifac[i]=ifac[i+1]*(i+1)%mod;
int ans=0;
for(int i=1;i<=k;i++) ans=(ans+(((k-i)&1)?-1:1)*pw[i]*pre[i-1]%mod*suf[i+1]%mod*ifac[i]%mod*ifac[k-i]%mod);
return ans;
} void solve() {
int N,n;read(N),read(m);for(int i=1;i<=m;i++) read(a[i]);n=N;
for(int i=1;i<=m+3;i++) pw[i]=(qpow(i,m+1)+pw[i-1])%mod;
int ans=0;sort(a+1,a+m+1);
for(int i=0;i<=m;i++) {
ans+=calc(n-a[i],m+1);
for(int j=i;j<=m;j++) ans=(ans-qpow(a[j]-a[i],m+1))%mod;
}write((ans+mod)%mod);
} signed main() {
int t;read(t);
while(t--) solve();
return 0;
}

[BZOJ5339] [TJOI2018]教科书般的亵渎的更多相关文章

  1. 【BZOJ5339】[TJOI2018]教科书般的亵渎(斯特林数)

    [BZOJ5339][TJOI2018]教科书般的亵渎(斯特林数) 题面 BZOJ 洛谷 题解 显然交亵渎的次数是\(m+1\). 那么这题的本质就是让你求\(\sum_{i=1}^n i^{m+1} ...

  2. 洛谷 P4593 [TJOI2018]教科书般的亵渎

    洛谷 P4593 [TJOI2018]教科书般的亵渎 神仙伯努利数...网上一堆关于伯努利数的东西但是没有证明,所以只好记结论了? 题目本质要求\(\sum_{i=1}^{n}i^k\) 伯努利数,\ ...

  3. BZOJ5339:[TJOI2018]教科书般的亵渎——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=5339 https://www.luogu.org/problemnew/show/P4593 小豆 ...

  4. 并不对劲的复健训练-bzoj5339:loj2578:p4593:[TJOI2018]教科书般的亵渎

    题目大意 题目链接 题解 先将\(a\)排序. \(k\)看上去等于怪的血量连续段的个数,但是要注意当存在\(a_i+1=a_{i+1}\)时,虽然它们之间的连续段为空,但是还要算上:而当\(a_m= ...

  5. 【bzoj5339】[TJOI2018]教科书般的亵渎(拉格朗日插值/第二类斯特林数)

    传送门 题意: 一开始有很多怪兽,每个怪兽的血量在\(1\)到\(n\)之间且各不相同,\(n\leq 10^{13}\). 然后有\(m\)种没有出现的血量,\(m\leq 50\). 现在有个人可 ...

  6. BZOJ.5339.[TJOI2018]教科书般的亵渎(拉格朗日插值) & 拉格朗日插值学习笔记

    BZOJ 洛谷 题意的一点说明: \(k\)次方这个\(k\)是固定的,也就是最初需要多少张亵渎,每次不会改变: 因某个怪物死亡引发的亵渎不会计分. 不难发现当前所需的张数是空格数+1,即\(m+1\ ...

  7. [TJOI2018]教科书般的亵渎

    嘟嘟嘟 题面挺迷的,拿第一个样例说一下: 放第一次亵渎,对答案产生了\(\sum_{i = 1} ^ {10} i ^ {m + 1} - 5 ^ {m + 1}\)的贡献,第二次亵渎产生了\(\su ...

  8. P4593 [TJOI2018]教科书般的亵渎(拉格朗日插值)

    传送门 首先所有亵渎的张数\(k=m+1\),我们考虑每一次使用亵渎,都是一堆\(i^k\)之和减去那几个没有出现过的\(j^k\),对于没有出现过的我们可以直接快速幂处理并减去,所以现在的问题就是如 ...

  9. Luogu P4593 [TJOI2018]教科书般的亵渎

    亵渎终于离开标准了,然而铺场快攻也变少了 给一个大力枚举(无任何性质)+艹出自然数幂和的方法,但是复杂度极限是\(O(k^4)\)的,不过跑的好快233 首先简单数学分析可以得出\(k=m+1\),因 ...

随机推荐

  1. COGS 2199. [HZOI 2016] 活动投票

    2199. [HZOI 2016] 活动投票 ★★   输入文件:hztp.in   输出文件:hztp.out   简单对比时间限制:0.5 s   内存限制:2 MB [题目描述] 衡中活动很多, ...

  2. 聊聊WS-Federation(test)

    本文来自网易云社区 单点登录(Single Sign On),简称为 SSO,目前已经被大家所熟知.简单的说, 就是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 举例: 我们 ...

  3. 关于 Windows 10 字体安装目录的问题

    不知从什么时候开始,本人台式机的Win10系统在安装字体的时候并不是安装到C:\Windows\Fonts目录中,而是安装到%USERPROFILE%\AppData\Local\Microsoft\ ...

  4. js 中常用到的封装方法

    /** * 获取URL参数 */ function getQueryString(name) { var reg = new RegExp("(^|&)" + name + ...

  5. Python函数变量和返回值

    Python函数的全局变量和局部变量 1.不同的编程语言,程序可以分为函数和过程两大类,函数具有具体返回值,而过程则不具有具体的返回值,python只具有函数,因为对于它的一般函数,其返回值为所具体返 ...

  6. Django - day01 快速回忆ORM操作

    Django - day01 Model的增删改查找 得益于Django的ORM模型,用面向对象的思想来操作数据库使得数据库的操作一切变得简洁了很多. 0. 建表 在应用下的models.py中建立一 ...

  7. Maven编译Java项目

    Spring在线参考文档: http://spring.io/guides/gs/maven/ 下载安装 Downloadand unzip the source repository for thi ...

  8. C#二次封装虹软arc研究

    相信很多用C#又想用虹软的SDK的童鞋要花很多心思去研究怎么转换,所以写了一篇文章和一个demo方便用C#的童鞋方便调用虹软的接口, 文章的地址是:https://blog.xgcos.com/sho ...

  9. clientHeight、offsetHeight、scrollHeight、clientTop、scrollTop、offsetTop的对比

    首先,这些都是dom节点的属性. 高宽属性:clientHeight:html元素不含border的高度. 对于box-sizing不同的情况,有些地方需要注意一下.当box-sizing为conte ...

  10. isX字符串方法

    islower():返回True,如果字符串至少有一个字母,并且所有字母都是小写: 例如:>>> spam='Hello world' >>> spam.islow ...