bzoj1566 NOI2009 管道取珠

2021-07-29 21:44:45 字數 795 閱讀 1149

題目大意:

兩個輸入管道裡面分別有n、m個有著兩種顏色的珠子。只從右端取。依次於輸出管道中形成。設對於一種的輸出方式有ai

種產生方法有k種不同的輸出方式,求∑k

i=1a

2i。題解:

智商dp 看到a

2i想到什麼呢?ai

×ai

嗯..a

i 是相同方式的產生方法的個數,那麼ai

×ai 就可以看成兩個人來玩這個遊戲,產生方法相同的個數。

可是我想不到啊 設f

[i][

j][k

] 表示要取第

i 個球,第乙個人在上方管道取了

j個,第二個人在上方管道取了

k 個。

轉移就很簡單了

但是我還是在奇怪的地方糾結了好久qwq

#include

#include

#include

#include

#include

using

namespace

std;

#define n 510

const

int mod=1024523;

int a[n],b[n],f[2][n][n];char s[n];

int main()

t=1-t;

memset(f[t],0,sizeof(f[t]));

}printf("%d\n",f[1-t][n][n]);

return

0;}

bzoj1566 NOI2009 管道取珠

第一行包含兩個整數n,m,分別表示上下兩個管道中球的數目。第二行為乙個ab字串,長度為n,表示上管道中從左到右球的型別。其中a表示淺色球,b表示深色球。第三行為乙個ab字串,長度為m,表示下管道中的情形。output 僅包含一行,即為 sigma ai 2 i從1到k 除以1024523的餘數。sa...

bzoj1566 Noi2009 管道取珠

題意 兩個棧不斷pop,共c n m,n 種,ai表示每個相同序列的方案數,求 ai 2 sol 首先,將相同的序列看做兩個人選取後相同的方案數 考慮dp,dp i j k l 表示第乙個人從上面選i個,下面選j個,第二個人上k個下l個的答案 顯然第四維狀態可以由前三維決定 不過還是不太好轉移,將狀...

bzoj1566 NOI2009 管道取珠

第一行包含兩個整數n,m,分別表示上下兩個管道中球的數目。第二行為乙個ab字串,長度為n,表示上管道中從左到右球的型別。其中a表示淺色球,b表示深色球。第三行為乙個ab字串,長度為m,表示下管道中的情形。僅包含一行,即為 sigma ai 2 i從1到k 除以1024523的餘數。2 1abb5 樣...