算迴圈 NOIP2016提高A組模擬10 15

2021-07-23 17:40:51 字數 1540 閱讀 8053

樣例輸入:

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叫我們去看考場,結果被拒在門外,然後大家都散了。我與其它幾位小夥伴匆匆吃完飯,回到酒店,該看電視看電視,中途開會,提醒我們一些注意事...