BZOJ 1566 管道取珠(DP)

2021-09-07 23:11:56 字數 492 閱讀 3414

題意:

思路:假設得到同乙個序列s 的方案有ai=3,x,y,z,那麼ai^2就是(x,x)(x,y)(x,z)(y,x)(y,y)(y,z)(z,x)(z,y)(z,z),因此我 們可以將原來的一套裝置看做兩套。f[i][j][p][q]表示從第一套裝置的上面取i個下面取j個、從第二套裝置的上面取p個下面取q個,且兩套裝置 得到的兩個序列相同的方案數,則答案就是f[n][m][n][m]。由於任何時候我們都是同時列舉兩個裝置中的,因此i+j=p+q在任意時刻都相等, 因此只要三維就夠了。

int f[n][n][n],n,m;

char s1[n],s2[n];

void up(int &x,int y)

int main()

pr(f[n][m][n]);

}

bzoj1566 NOI2009 管道取珠

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

bzoj1566 NOI2009 管道取珠

題目大意 兩個輸入管道裡面分別有n m個有著兩種顏色的珠子。只從右端取。依次於輸出管道中形成。設對於一種的輸出方式有ai 種產生方法有k種不同的輸出方式,求 k i 1a 2i。題解 智商dp 看到a 2i想到什麼呢?ai ai 嗯.a i 是相同方式的產生方法的個數,那麼ai ai 就可以看成兩個...

bzoj1566 Noi2009 管道取珠

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