P2467-[SDOI2010]地精部落【dp】
生活随笔
收集整理的這篇文章主要介紹了
P2467-[SDOI2010]地精部落【dp】
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
正題
題目鏈接:https://www.luogu.org/problem/P2467
題目大意
求長(zhǎng)度為nnn的波動(dòng)序列的個(gè)數(shù)。
解題思路
我們先考慮第一個(gè)是上升的,然后乘2即可。
設(shè)fi,jf_{i,j}fi,j?表示填1~i1\sim i1~i個(gè),最前面的是jjj的個(gè)數(shù)。然后我們只要是1~i?j+11\sim i-j+11~i?j+1,當(dāng)然可以填iii那么一定可以填i+1i+1i+1,所以有遞推方程fi,j=fi,j?1+fi?1,i?j+1f_{i,j}=f_{i,j-1}+f_{i-1,i-j+1}fi,j?=fi,j?1?+fi?1,i?j+1?
codecodecode
#include<cstdio> #include<cstring> #include<algorithm> #define ll long long using namespace std; ll n,XJQ,f[2][4300],ans; int main() {scanf("%lld%lld",&n,&XJQ);f[0][2]=1;for(ll i=3;i<=n;i++){//memset(f[i&1],0,sizeof(f[i&1]));for(ll j=2;j<=i;j++){f[i&1][j]=(f[i&1][j-1]+f[~i&1][i-j+1])%XJQ;(ans+=f[i&1][j]*(i==n))%=XJQ;}}printf("%lld",(ans<<1)%XJQ); }總結(jié)
以上是生活随笔為你收集整理的P2467-[SDOI2010]地精部落【dp】的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 惠崇春江晚景的诗意思 简单介绍一下
- 下一篇: 脍炙的意思是什么 脍炙的读音是什么