樣例輸入:
167 198
樣例輸出:
906462341
給乙個矩陣,求矩陣所有子矩陣的面積和,取模。
第一眼,20分肯定是原來暴力。
第二眼,40分的不就是最後那兩重迴圈去掉嘛。。。
然後腦補。
想到了乙個遞推式,但是這個遞推是是二維的並且還有加數是兩個數的乘積。
發現乘積可以代替。
於是很自然的想到了矩陣乘法+快速冪**。
然而二維的怎麼打啊。。。。。
就炸了。
40分不說,這道題確實是可以用矩陣乘法快速冪弄出來,只不過我不會。。。。
60分:
如果固定了矩形的左上角(也就是 i 和 j 的列舉),那麼剩下的就可以看成是一些共用乙個角落的矩形的面積和。 設最大的矩形是 n ×m 的,那麼 設 s
(n,m
)=∑x
=1n∑
y=1m
xy=n
(n+1
)2∗m
(m+1
)2答案為 ∑i
=1n∑
j=1m
s(n−
i+1,
m−j+
1)逆元提前處理,時間o(
n2)
80%:
首先答案還同樣可以等於∑n
i=1∑
mj=1
s(i,
j)。展開後得到14
∑ni=
1i(i
+1)∑
mj=1
j(j+
1)。
計算每個
∑ 部分。時間o(
n)
100%: 設f
(n)=
∑ni=
1i2∗
∑ni=
1i.
利用平方和公式以及等差數列求和公式得到 f(
n)=1
6n(2
∗n+1
)(n+
1)+1
2n(n
+1)
時間複雜度o(1).
NOIP2016提高A組模擬10 15 算迴圈
一步步刪掉迴圈,首先,原式是 i 1n j 1m k i n l jm p ik q jl 1 刪掉最後兩個迴圈 i 1n j 1m k i n l jm k i 1 l j 1 發現,當i,j 固定,隨著k,l 的變化,k i 1 l j 1 都是每次減少1 so,i 1n j 1m 1 2 n ...
NOIP2016提高A組模擬10 15 算迴圈
題解我們發現這六重迴圈有相同的部分,變為三重迴圈,即 for i 1 to n do for j i to n do for k i to j do 三個for迴圈。然後發現 for i 1 to n do for j i to n do 是求1到n的和,共迴圈了n n 1 2。再發現 for j ...
NOIP2016提高組總結
這次noip可以用幾個字來形容 浪的飛起,頹的不行。中午從校門出發,在車上睡了半個車程。4 00左右,霧比較大,遠處的小蠻腰若隱若現。你好,廣州。5 00,symbol叫我們去看考場,結果被拒在門外,然後大家都散了。我與其它幾位小夥伴匆匆吃完飯,回到酒店,該看電視看電視,中途開會,提醒我們一些注意事...