這道題不難,思路也沒錯,先求字首和,然後求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 ...