AcWing 1230 K倍區間 字首和

2021-10-18 19:25:35 字數 701 閱讀 1500

這道題不難,思路也沒錯,先求字首和,然後求sj-si-1是否被5整除,以為兩個相同餘數的字首和可以被五整除,我們把餘數作為標記點,求0<=i<=k-1中各個字首和餘數的個數,不過我們要注意剛開始g[0]=1,因為有可能選擇乙個數字,比如乙隻儲存了s1就沒法求1-1的區間是否被k整除還有很多0-n區間不能求出,

然後開始去進行乙個運算.

每次遍歷一位數,我們觀察前面有多少餘數相同的點能夠選擇,然後用字首和的方式去做。

老師**

/思路就是這樣**如下

#include

using

namespace std;

const

int n=

1e5+10;

long

long s[n]

,g[n]

;int

main

(void

)for

(int i=

0;i)printf

("%lld"

,sum)

;}

我覺得該題難度其實沒有中等,不過我因為沒開longlong很多資料沒有過去。

AC1230 k倍區間(藍橋杯)

題意 問有多少段的和能被k整除 這個題跟我入隊考試的題非常的像。首先他問我們某一段的和是不是乙個k的倍數,那麼一段和我們很自然的就聯想到字首和了。而且我們知道,如果對每乙個字首和都進行 k處理,那麼就一定會使得某些數是0 假設這個數的位置是i 那麼就說明從1到i的所有的數的和都是k的倍數。那麼我們也...

K倍區間問題

題目描述 給定乙個長度為n的數列,a1,a2,an,如果其中一段連續的子串行ai,ai 1,aj i j 之和是k的倍數,我們就稱這個區間 i,j 是k倍區間。你能求出數列中總共有多少個k倍區間嗎?輸入資料 第一行包含兩個整數n和k。1 n,k 100000 以下n行每行包含乙個整數ai。1 ai ...

歷屆試題 k倍區間

問題描述 給定乙個長度為n的數列,a1,a2,an,如果其中一段連續的子串行ai,ai 1,aj i j 之和是k的倍數,我們就稱這個區間 i,j 是k倍區間。你能求出數列中總共有多少個k倍區間嗎?輸入格式 第一行包含兩個整數n和k。1 n,k 100000 以下n行每行包含乙個整數ai。1 ai ...