海亮杯總結

Merlin·Lee發表於2024-05-01

寫在前面: 100+100+30+0+20+20=270,rnk42,超級菜

你說的對,但是《第三屆“海亮杯”》是由海亮教育集團自主研發的一款全新開放世界冒險遊戲。遊戲發生在一個被稱作「浙江省諸暨海亮高階中學」的幻想世界,在這裡,被神選中的人將被授予「正方形巧克力」,導引「數位和」之力。你將扮演一位名為「小海」的神秘角色在自由的旅行中邂逅「人脈很廣」、「被質因子困擾」的同伴們,和他們一起擊敗tle,re,mle,wa,找回「每m天下一個蛋的雞」——同時,逐步發掘「max和gcd」的真相

日常唐一下

進入正題:

海亮杯總結

令人原地退役的海亮普及組

T1小海每天的營養餐

開啟題面我還以為會是洛谷月賽Div3

一個簡單的模擬,只要在每次m個天到時,先判斷是否在這之前還有雞蛋,若有,再補充一個雞蛋;反之,直接退出迴圈。

T2困擾靚亮的質因子

基礎小數論搞定因為最小的質因數是2,所以我們要向2的倍數靠攏
輸入的數有兩種情況:奇數和偶數 ,所以我們要分情況

偶數:每次操作步驟都減去2,最終結果為直接n/2

奇數:1.若第一次操作步驟中找到他的最小質因子,用n減去這個質因子結果為一個偶數,這樣就可以進行偶數操作步驟,最終結果為1+n/2;

2.若第一次操作時最小質因子為它本身,最終結果為1。

T3巧克力

難度驟增(至少對於我)

如果不是死磕T3和T4,我T5或T6至少能多得50pts

對於這個問題,我們可以使用貪心演算法來解決。具體思路如下:

讀取輸入的大巧克力大小 H 和 W,以及朋友數量 N。

讀取每個朋友的要求 A_i。

對所有朋友的要求進行排序,從最大的要求開始考慮。

對於每個朋友的要求 2^A_i*2^A_i,我們可以嘗試將大塊巧克力按照 2^A_i 的大小切割,直到無法再切割為止。如果巧克力的大小能被完整切割,則繼續處理下一個朋友的要求;如果無法被完整切割,則返回 "No"。

如果所有朋友的要求都能被滿足,則返回 "Yes"。

這種方法的時間複雜度較低,因為對於每個朋友的要求只需要一次遍歷,而且對於每次切割操作也只需要 O(1) 的時間。因此,這種方法是有效且高效的解決方案。

T4海亮學生人脈很廣

確實很廣qwq

這個問題可以透過深度優先搜尋(DFS)來解決,具體思路如下:

讀取輸入的 n 和 m,表示方格矩陣的大小。
讀取 n 行資料,每行包含 m 個字元,“*” 表示主動同學,“.” 表示被動同學,並將其儲存在一個二維陣列中。
對於每一個主動同學(用 “*” 表示),從該位置進行深度優先搜尋,統計與之相鄰的被動同學數量,並標記已經訪問過的位置。
將得到的朋友圈人數(含自己)對 10 取模後的結果更新到原始的二維陣列中。
最後將更新後的結果輸出即可。

T5數位和

數位dp?

讀取輸入的整數 N,表示數字的個數。
讀取 N 個數字 A_1, A_2, ..., A_N。
對於每對數字 A_i 和 A_j,計算它們的和 A_i + A_j,並計算其數位和 f(A_i + A_j)。
將所有的 f(A_i + A_j) 累加起來得到最終的結果。
要解決這個問題,我們可以使用分治演算法和數學模運算的方法來求解。

T6計算數列

首先,我們可以使用分治演算法將原始陣列不斷劃分為子陣列,然後遞迴地計算每個子陣列的最大值和最大公約數。
對於每個子陣列 [l, r],我們可以使用遞迴的方法來計算 maxVal(l, r) 和 gcdVal(l, r)。
對於每個計算出來的 maxVal(l, r) * gcdVal(l, r),我們可以累加到總和中。
最後,對結果對 998244353 取模即可得到最終的結果。

寫在後面

快要期中考試了,當然總結寫的很水。考完試會及時補全(包括程式碼)

rp++!

score++!

luck++!

相關文章