求nn
個球裝進3
3個袋子裡的總方案數。
出題人十分良心的給出了表:nn
1234
5678
910方案數125
1441
122365
1094
3281
9842
然後就變成了一道找規律的題目。
40分做法:
容易發現f[i
]=3×
f[i−
1]−1
f[i]
=3×f
[i−1
]−1。暴力遞推即可。
20到100分做法:
可以發現公式f[i
]=3i
−1−1
2f[i
]=23
i−1−
1。直接用快速冪,多少分要看你打的好不好。。。
100分做法:
矩陣乘法加速遞推。
可以發現矩陣:
然後遞推即可。
#include
#include
using
namespace std;
int n,mod,f[3]
;int a[3]
[3]=
,,};
void
mul(
int f[3]
,int a[3]
[3])
void
mulself
(int a[3]
[3])
intmain()
printf
("%d"
,f[1
]%mod)
;return0;
}
DP 數學小技巧 三個袋子
時間限制 1 sec 記憶體限制 64 mb 平平在公園裡遊玩時撿到了很多小球,而且每個球都不一樣。平平找遍了全身只發現了3個一模一樣的袋子。他打算把這些小球都裝進袋子裡 袋子可以為空 他想知道他總共有多少種放法。將n個不同的球放到3個相同的袋子裡,求放球的方案總數m。結果可能很大,我們僅要求輸出m...
三個數乘法。vb
private sub command1 click clsfont.size 30 dim a as double dim b as double dim c as double a 8 b 9 c a b print c end sub 先寫上最簡單的乘法吧 dim a as byte dim ...
三個元素的矩陣乘除法
總結一下就是,如果a和b兩個矩陣要相乘,a的列數要和b的行數相同的,其實矩陣就是線性代數中對多項式常量的一種抽象表達。比如 a是2 80的矩陣,b是80 2的矩陣,得出的還是2 2的矩陣,簡單說就是結果是a的行 b的列的矩陣,哪怕a的列是10000呢,b的行是10000,都不影響a b的行列數,a的...