国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
新竹县| 沿河| 泸水县| 陇川县| 长泰县| 穆棱市| 雷山县| 万盛区| 威远县| 行唐县| 兴仁县| 新邵县| 巧家县| 高阳县| 麟游县| 凌源市| 临颍县| 鄂州市| 新密市| 蒙山县| 宝丰县| 咸丰县| 河池市| 都昌县| 开鲁县| 蓬莱市| 尉氏县| 成安县| 玉环县| 青海省| 闵行区| 隆回县| 黄骅市| 邯郸县| 云和县| 三江| 贡觉县| 井陉县| 霸州市| 靖边县| 马山县|