description思路:考慮dp給出乙個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
設 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 ...