CQOI2008 矩陣的個數

2021-10-08 07:49:55 字數 1594 閱讀 2811

description

給出乙個n行3列非負整數矩陣的各行各列之和,統計有多少個矩陣滿足此條件。輸出答案模10^17的值。

input

第一行包含四個正整數n,c1, c2, c3,即行數與三列之和。第二行包含n個正整數,即各行三個數之和。每行每列之和均不超過125。

output

僅乙個數,滿足條件的矩陣個數模10^17的值。

sample input

3 2 3 4

1 2 6

sample output

17hint

1<=n<=200

思路:考慮dp

設 f i,

j,k,

lf_

fi,j,k

,l​ 表示到第 i

ii 行時, 第一列的和為 j

jj,第二列的和為 k

kk,第三列的和為 l

ll由於第三列的和可以通過第一二列推得,故只需設 fi,

j,kf_

fi,j,k

​容易想到狀態轉移方程 fi,

j+x,

k+y=

(fi,

j,k+

fi,j

+x,k

+y)m

od10

17f_=(f_+f_)\ mod\ 10^

fi,j+x

,k+y

​=(f

i,j,

k​+f

i,j+

x,k+

y​)m

od10

17其中 x+y

⩽ai,

x+j⩽

c1,y

+k⩽c

2x+y\leqslant a_i,x+j \leqslant c1, y+k \leqslant c2

x+y⩽ai

​,x+

j⩽c1

,y+k

⩽c2觀察可發現只出現 i−1

i-1i−

1 和 i

ii,故可以用滾動陣列進行優化 (雖然我並沒有那麼做) cod

e:

code:

code

:

#include

using

namespace std;

int n , c1 , c2 , c3 , a[

201]

;long

long f[

201]

[201][

201]=;

intmain()

}}}}

cout << f[n]

[c1]

[c2]

<< endl;

return0;

}

tha

t′sa

ll

that's\ all

that′s

all

CQOI2008矩陣的個數

給出乙個n行3列非負整數矩陣的各行各列之和,統計有多少個矩陣滿足此條件。輸出答案模10 17的值。第一行包含四個正整數n,c1,c2,c3,即行數與三列之和。第二行包含n個正整數,即各行三個數之和。每行每列之和均不超過125。1 n 200 抓住題目的資料範圍n 200,每行每列之和均不超過125。...

CQOI2008 矩陣的個數

反正對今天是無言。給出乙個n行3列非負整數矩陣的各行各列之和,統計有多少個矩陣滿足此條件。輸出答案模10 17的值。第一行包含四個正整數n,c1,c2,c3,即行數與三列之和。第二行包含n個正整數,即各行三個數之和。每行每列之和均不超過125。僅乙個數,滿足條件的矩陣個數模10 17的值。3 2 3...

nyoj 206 矩陣的個數

時間限制 1000 ms 記憶體限制 65535 kb 難度 1 描述 在乙個3 2的矩形中,可以找到6個1 1的矩形,4個2 1的矩形3個1 2的矩形,2個2 2的矩形,2個3 1的矩形和1個3 2的矩形,總共18個矩形。給出a,b,計算可以從中找到多少個矩形。輸入本題有多組輸入資料 10000 ...