P2513-[HAOI2009]逆序对数列【dp,前缀和】
生活随笔
收集整理的這篇文章主要介紹了
P2513-[HAOI2009]逆序对数列【dp,前缀和】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
題目鏈接:https://www.luogu.org/problemnew/show/P2513
題目大意
求長度為nnn逆序對為kkk個的序列總數。
解題思路
設fi,jf_{i,j}fi,j?表示1~i1\sim i1~i的排列逆序對個數為jjj
然后顯然:fi,j=∑k=1i?1fi?1,j?kf_{i,j}=\sum_{k=1}^{i-1}f_{i-1,j-k}fi,j?=k=1∑i?1?fi?1,j?k?
前綴和優化
codecodecodertf
#include<cstdio> #include<algorithm> using namespace std; int n,k,f[1100][1100]; int main() {scanf("%d%d",&n,&k);f[1][0]=1;for(int i=2;i<=n;i++){for(int j=0;j<=k;j++)(f[i-1][j]+=f[i-1][j-1])%=10000;for(int j=0;j<=k;j++)f[i][j]=(f[i-1][j]-f[i-1][max(0,j-i+1)-1]+10000)%10000;}printf("%d",f[n][k]); }總結
以上是生活随笔為你收集整理的P2513-[HAOI2009]逆序对数列【dp,前缀和】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么看路由器的用户名和密码怎么查看路由器
- 下一篇: 清华大学展示“望舒之辇”载人月球车研制方