FJUT ACM 2133 第七集,奇思妙想

2022-03-11 18:38:00 字數 2178 閱讀 1338

timelimit:2000ms  memorylimit:128mb

64-bit integer io format:%lld

problem description

在經過乙個比賽的小插曲後,小a不僅得到主辦方的賞識後,還撈到了一大筆錢。有了足夠的錢後,他繼續出發前往那個聚會城市。由於小a和小c每天都需要趕路,他們需要多買一些舒適的襪子。在離開這個城市前,他先逛了一家襪子批發商店,該商店將不同數量的襪子放入乙個個盒子中,且將盒子排成一排,小a看到這樣的情景,頓時好奇(程式設計師的本能):

若把這些箱子圍成乙個圈,並且拿走一段連續的箱子,且箱子中的襪子的總數量正好等於小a要買的襪子的數量m,有多少種拿法?(假設有n個盒子,盒子編號1-n)

同在小a和小c買完了襪子之後,繼續朝著聚會城市出發…

input

有多組測試案例,

每組測試案例,第一行輸入乙個正整數n,m(1<=n<=10^6, 1<=m<=10^8),表示有n個箱子。

第二行輸入n個非負整數ai(1<=ai<=100)、分別表示連續箱子裡面的襪子的數量、

output

對於每組測試案例,輸出有多少種方法、

sampleinput

2 1

1 13 2

1 1 1

3 31 1 1

3 11 1 1

3 51 1 1

sampleoutput

231

30【思路】:

看到這一題我的第一直覺是暴力,列舉每個點的情況,這是會有一種情況,需要考慮即 。。。。,n-1,0,。。。。就是越過起點這種情況

我就想到了,先寫個判斷,因為範圍的最大就是一圈,如果一圈的累加得到的sum

#includeint x[1000005

];int

main()

for(i=0; i)

if(sum2==m)

sum=0

; j=i;

sum+=x[j];

j++;

if(j==n)j=0

;

if(sum>m)continue

;

if(sum==m)

while(j!=i)}}

printf(

"%d\n

",flag);}}

然後跑了下樣例,發現正確,直接提交。。。。。

。。。。。。。超時。。。。。。。。

後來仔細一看o(n*n)的複雜度,果然涼涼,就問了下cwl學長,cwl學長說要將複雜度降為o(n)

才能過!

然後發現這題的知識點是雙指標,然後發現這個是區間和

附上**

然後更正了思路,就是兩個」指標「在跑,乙個在前乙個在後,如果值不夠,即前方指標++;如果超過,即後面指標++;

但是這題還是要魔改一下,讓其可以跑過n值。

其他跟第乙個思路相似;

附上**:

#includeint x[1000005

];int

main()

l=0; r=0

; a=0

; flag=0

;

if(sum==m)printf("

1\n"

);

if(sum"

0\n"

);

if(sum>m)

sum+=x[r];

}if(sum==m)

sum+=x[r];

}if(sum>m)

}printf(

"%d\n

",flag);}}

return0;

}

然後一發ac。

第七組第七次衝刺

這個作業屬於哪個課程 這個作業要求在 homework 11512 團隊名稱 八級大狂風 第七組 這個作業的目標 alpha衝刺 隊名 八級大狂風 組員人數 11 接下來的計畫 後端資料庫實現,分數上傳功能,地圖增加多樣性 增加陷阱磚塊,移動轉塊等 還剩下哪些任務 人物行走動畫,人物模型更換,更換 ...

第七周作業

書中習題1 說說下列程式的執行過程和運算結果 include includeusing namespace std double squ double x 函式原形 int main 主函式 書2,不用庫函式,求整數次冪 3.程式設計實現輸入兩個4x5矩陣和5x3矩陣,定義函式並在主函式中呼叫計算它...

第七周總結

3.1 索引特點 很容易想到 mysql 索引可以大大提高檢索速度 優點 1.通過建立唯一索引,保證資料表每行資料的唯一性 2.大大加快資料查詢速度 3.在使用分組和排序進行資料查詢時,可以顯著減少查詢中分組和排序的時間 缺點 1.維護索引需要耗費資料庫資源 2.索引需要占用磁碟空間,索引檔案可能比...