參加2020Jam初賽記錄與部分題目解答

2021-10-04 22:24:29 字數 2557 閱讀 8988

我大約花了5-6小時,只做對兩題,拿到27分,不能進入下一輪比賽了。雖然結果並不好,不過那天過的十分充實,讓我感到很愉快,以後一定多多參加類似的演算法大賽,愉快自己。下面介紹一下這三道題和我的解題思路,原題目和我的**會放到github上,github位址。

第一題 矩陣計算(7分)

題目意思是,給定n個int型別矩陣,計算每個矩陣對角線的和(左上角到右下角),並計算矩陣中存在重複數的行數和列數,例如:

輸入

3

41 2 3 4

2 1 4 3

3 4 1 2

4 3 2 1

42 2 2 2

2 3 2 3

2 2 2 3

2 2 2 2

32 1 3

1 3 2

1 2 3

輸出

case #1: 4 0 0

case #2: 9 4 4

case #3: 8 0 2

4 0 0代表第乙個矩陣的對角線上的數之和是4,存在重複數字的行數是0,存在重複數字的列數是0。

解題思路

這題的不難,只要把資料接收儲存就可以了。我是用乙個二維陣列的list來存矩陣資料,根據二維陣列的下標就能算出題目的答案了。

第二題 字串的處理

給定一串純數字的字串,在每個字串左右加上數量相同的左右括號,括號的深度和數字相同,如((2))多個數字之間的括號可以合併,如((2(3)))。給出乙個字串,求出符合條件的加括號的字串中長度最短的字串。如0((2)1), (((3))1(2)), ((((4)))), ((2))((2))(1)都是符合條件的字串,但是第四個不是最短的,因為((22)1)更短,案例:

輸入

4

0000

101111000

1

輸出

case #1: 0000

case #2: (1)0(1)

case #3: (111)000

case #4: (1)

解題思路

這道題我的解題思路是,把字串分乙個數字陣列,從第乙個數字開始,新增()形成字串,再把下乙個數字加入進來,繼續處理新的(),用例子說明容易理解一點。比如對應字串312,處理邏輯分3步。

這個加新數得到最短長度的深度括號的字串的邏輯是這樣的,如ab數加c,分bc三種情況處理括號。

不斷加新數並按上面的邏輯的到新字串,直到所有的數字都新增完,就得到最終的最短的字串。

第三題 安排活動

給定一列活動的時間段,把這些計畫分配給c和j兩個人去完成,但是乙個人不能同時完成擁有時間衝突的兩項活動。如有三個活動18:00 - 20:00, 19:00 - 21:00 和 22:00 - 23:00,一種安排方式是c去完成18:00 - 20:00這個活動,j去完成19:00 - 21:00 和 22:00 - 23:00這兩個活動。當然,c去完成19:00 - 21:00 和 22:00 - 23:00,j去完成18:00 - 20:00也是可以的。如果有三個活動的時間段互相衝突,則這些活動就無法被分配,如18:00 - 20:00, 19:00 - 21:00,19:00 - 22:00。

可以安排的活動列表,輸出活動由c和j的一種執行順序;如果活動列表不能分配,輸出impossible

輸入

4

3360 480

420 540

600 660

30 1440

1 32 4

599 150

1 100

100 301

2 5150 250

20 720

720 1440

輸出

case #1: cjc

case #2: impossible

case #3: jccjj

case #4: cc

解題思路

這題我沒有做對,思路錯誤。

我的思路是,設為a和b兩個list,把活動乙個乙個往裡面新增,如果該活動在a中存在乙個衝突的活動,就把離不衝突的最近的那個活動放在佇列a;另乙個放在b,如果佇列b也存在乙個衝突的,就把a中衝突的放在b中,如果繼續存在衝突,則認為無法安排。

正確思路可能是,每進乙個新的活動,判斷是否a,b列表是否都存在與之衝突的活動,都不存在則插入佇列a;如果a存在,b不存在則插入佇列b;如果a,b中都存在衝突的活動,將這些衝突的活動都拿出來比較,檢視它們之間是否互相衝突,如果衝突則說明活動無法安排;如果不衝突,則把這些活動放到佇列b中(如果b中有衝突,放入a,把a衝突翻入b,直到沒有衝突),把插入的活動放到a。

2020 CSP初賽遊記

早上考csp s,下午考csp j,有點慌啊。早上人在機房,表情很安定 其實很慌啊 然後去考tg 選擇題竟然考了夏農 我竟然不知道這道題的答案 然後就排除法選了乙個。果然tg 要考時間複雜度,但是好像做錯了,但好像也沒關係,因為下午才是重頭戲啊。考完感覺不是很好,吃了飯就去複習下午j組比賽了。希望下...

CSP 2020初賽遊記

第2次參加csp 每天筆試 機試 在家放鬆 寫作業 雞鴨月考 愉快的在別人月考的時候離開雞鴨 坐車,車位置不夠,教練cdc cdccd c向我發出同車邀請,被拒絕 最後做了大巴的司乘專座 快樂 到了紀中門口,還要等cdc cdccd c的小車車到才能下車 明明比三鑫早到結果不能下車,啊這 結果c d...

CSP S 2020初賽遊記

早上七點起床,初賽就在學校裡面考,先去食堂吃了個早飯,高糖的那種畢竟據說考試前攝入醣類能提高智商 然後去機房溜達了一下,膜拜了眾多大神,就是沒有拜夏農爸爸 然後我那個題就選錯了 看了一會兒之後被叫下去考試,考室裡面有很多小朋友,每乙個看起來都很厲害的亞子,我就有點慌,有要考差的預感。卷子發下來了,看...