国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

[BZOJ3142][Hnoi2013]數(shù)列(數(shù)學(xué)相關(guān))

2019-11-11 04:23:34
字體:
供稿:網(wǎng)友

題目描述

傳送門

題解

題意就是給出n,k,m,p,求有多少長度為k的序列A,滿足:首項(xiàng)為正整數(shù);遞增數(shù)列;相鄰兩項(xiàng)的差小于等于m;最大值小于等于n 設(shè)a(i)=A(i+1)-A(i),我們只考慮a(i),顯然a(i)所需要滿足的條件就是ai≤m 一個(gè)合法的a(i)序列對答案的貢獻(xiàn)為 n?∑i=1k?1ai 合法的a(i)序列一共有mk?1個(gè),那么 ans=∑a1=1m∑a2=1m...∑ak?1=1m(n?a1?a2?...?ak?1) =n?mk?1?∑a1=1m∑a2=1m...∑ak?1=1m∑i=1k?1ai 從這里可以看出,后面的一坨實(shí)際上就是1..m這些數(shù)每個(gè)數(shù)出現(xiàn)了(k?1)?mk?2次,求它們的和 所以用一下等差數(shù)列的求和公式?ans=n?mk?1?m(m+1)2?(k?1)?mk?2

代碼

#include<algorithm>#include<iostream>#include<cstring>#include<cstdio>#include<cmath>using namespace std;#define LL long longLL n,m,k,Mod,ans;LL fast_pow(LL a,LL p){ LL ans=1; for (;p;p>>=1,a=a*a%Mod) if (p&1) ans=ans*a%Mod; return ans;}void exgcd(LL a,LL b,LL &x,LL &y){ if (!b) x=1LL,y=0LL; else exgcd(b,a%b,y,x),y-=a/b*x;}LL inv(LL a,LL b){ LL x=0LL,y=0LL; exgcd(a,b,x,y); x=(x%b+b)%b; return x;}int main(){ scanf("%lld%lld%lld%lld",&n,&k,&m,&Mod); if (k==1) {
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 海伦市| 漳州市| 张掖市| 民权县| 习水县| 萍乡市| 荔浦县| 永济市| 靖边县| 富阳市| 重庆市| 方城县| 德钦县| 化隆| 汾阳市| 上饶市| 遂宁市| 马龙县| 刚察县| 陇川县| 安义县| 镇雄县| 仪征市| 互助| 调兵山市| 阿坝| 崇义县| 和政县| 定西市| 临江市| 永城市| 仲巴县| 永善县| 双牌县| 桂阳县| 嵩明县| 铁力市| 工布江达县| 石楼县| 建瓯市| 鄢陵县|