五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【藍(lán)橋杯學(xué)習(xí)記錄】K倍區(qū)間

2022-03-26 19:11 作者:長(zhǎng)舟泛歌  | 我要投稿

一、題目

給定一個(gè)長(zhǎng)度為N的數(shù)列,A1, A2, ...... AN ,如果其中一段連續(xù)的子序列Ai,Ai+1, ...... Aj( i≤j ) 之和是K的倍數(shù),我們就稱(chēng)這個(gè)區(qū)間 [i, j][i,j] 是 K 倍區(qū)間。你能求出數(shù)列中總共有多少個(gè) K 倍區(qū)間嗎?
第一行包含兩個(gè)整數(shù) N 和 K
以下 N 行每行包含一個(gè)整數(shù) Ai
輸出一個(gè)整數(shù),代表 K 倍區(qū)間的數(shù)目。

二、數(shù)學(xué)知識(shí)

(a-b)%K==0等價(jià)于a&K==b%K

三、解題思路

本題很容易想到暴力的做法,就是用一個(gè)三層循環(huán),但是這樣會(huì)超時(shí)。于是可以用前綴和,即sum[i]=A[1]+A[2]+·······A[i]。這樣每一個(gè)區(qū)間[i,j]的和就可以表示為sum[j]-sum[i]。由上面數(shù)學(xué)知識(shí)講到的等價(jià)式可知,我們想得到區(qū)間和對(duì)K取余==0,就是任意兩個(gè)前綴和對(duì)K取余得到的余數(shù)相等所以我們可以計(jì)算一下所有前綴和對(duì)K取余的余數(shù)的個(gè)數(shù),并且用組合數(shù)公式來(lái)得到一共有幾個(gè)組合,即有幾個(gè)K倍區(qū)間。

四、完整代碼

五、出現(xiàn)的問(wèn)題

本來(lái)用暴力方法就已經(jīng)超時(shí)了,我在改成前綴和時(shí)又把求余數(shù)新加了一個(gè)循環(huán),導(dǎo)致又超時(shí)了,挺笨的。還有就是測(cè)試數(shù)據(jù)有100000個(gè),而我開(kāi)始把數(shù)組S設(shè)成了[100000],但是我又棄用了S[0]導(dǎo)致數(shù)組越界了,另外答案很大,需要用long long類(lèi)型

六、參考資料

https://www.jianshu.com/p/3ed28f2bbcad

https://www.bbsmax.com/A/6pdD24EKJw/

【藍(lán)橋杯學(xué)習(xí)記錄】K倍區(qū)間的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
福贡县| 吉隆县| 襄樊市| 阜平县| 隆回县| 九寨沟县| 龙井市| 林口县| 昔阳县| 梁山县| 十堰市| 蒙阴县| 米易县| 临沧市| 遂平县| 陈巴尔虎旗| 慈溪市| 长汀县| 永顺县| 启东市| 长乐市| 明光市| 崇仁县| 长治县| 洪雅县| 固阳县| 六枝特区| 泉州市| 奉新县| 桐庐县| 沈阳市| 龙陵县| 翁牛特旗| 永善县| 馆陶县| 南澳县| 孝感市| 开封县| 渝北区| 全州县| 买车|