麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

[BZOJ3142][Hnoi2013]數列(數學相關)

2019-11-11 04:56:31
字體:
來源:轉載
供稿:網友

題目描述

傳送門

題解

題意就是給出n,k,m,p,求有多少長度為k的序列A,滿足:首項為正整數;遞增數列;相鄰兩項的差小于等于m;最大值小于等于n 設a(i)=A(i+1)-A(i),我們只考慮a(i),顯然a(i)所需要滿足的條件就是ai≤m 一個合法的a(i)序列對答案的貢獻為 n?∑i=1k?1ai 合法的a(i)序列一共有mk?1個,那么 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 從這里可以看出,后面的一坨實際上就是1..m這些數每個數出現了(k?1)?mk?2次,求它們的和 所以用一下等差數列的求和公式?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) {
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 91久久久久 | 久久www视频 | 激情影院在线观看 | 一区二区久久久久草草 | 精品久久久久久国产三级 | 亚洲人成中文字幕在线观看 | 免费毛片视频 | 毛片天天看 | 一级毛片免费大片 | 黄色av网站免费看 | 日本娇小videos高潮 | 精品国产看高清国产毛片 | 综合网天天色 | 深夜福利视频免费观看 | 最新亚洲国产 | 91精品国产乱码久久久久久久久 | 亚洲最大的成人网 | 一级一级一级一级毛片 | 久草免费新视频 | 欧美雌雄另类xxxxx | 性插视频 | 中国洗澡偷拍在线播放 | 特级黄一级播放 | 精品午夜影院 | 国产一级桃视频播放 | 色999国产 | 国产午夜精品一区二区三区四区 | 嗯~啊~弄嗯~啊h高潮视频 | a级毛片免费观看在线播放 日本aaa一级片 | h视频在线播放 | 亚洲国产网址 | 91亚洲精品一区二区福利 | 国产精品高潮视频 | 成人在线精品视频 | 日韩视频一二三 | 成片免费观看大全 | 毛片免费视频播放 | 麻豆视频在线观看免费网站 | 手机av在线电影 | 一区二区三区在线观看国产 | 看片一区二区三区 |