nssl1318-地铁重组【dp】
生活随笔
收集整理的這篇文章主要介紹了
nssl1318-地铁重组【dp】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
正題
題目大意
n個東西依次進入一個容量為p的棧,求出棧的序列數量。
解題思路
設fi,jf_{i,j}fi,j?表示iii個已經進過棧了(不管還有沒有出),jjj個還在棧里。
首先是將現在這個進棧fi?1,j?1f_{i-1,j-1}fi?1,j?1?,然后是出棧fi,j+1f_{i,j+1}fi,j+1?
方程fi,j=fi?1,j?1+fi,j+1(j≤p)f_{i,j}=f_{i-1,j-1}+f_{i,j+1}(j\leq p)fi,j?=fi?1,j?1?+fi,j+1?(j≤p)
codecodecode
#include<cstdio> #include<algorithm> using namespace std; const int N=2010,XJQ=4096; int n,p,f[N][N]; int main() {scanf("%d%d",&n,&p);f[1][1]=f[1][0]=1;for(int i=2;i<=n;i++){for(int j=p;j>=0;j--)if(j==0) f[i][j]=f[i][j+1]%XJQ;else f[i][j]=(f[i-1][j-1]+f[i][j+1])%XJQ;}printf("%d",f[n][0]); }總結
以上是生活随笔為你收集整理的nssl1318-地铁重组【dp】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英国政府将投资2.25亿英镑打造英国最强
- 下一篇: 消息称马自达最快于 2025 年在中国推