3104 - IP_2024_YOU_PRE_FIN_PRACTICE Scoreboard

Time

2024/11/25 14:30:00 2024/12/17 15:00:00

Clarification

# Problem Asker Description Reply Replier Reply Time For all team

# Problem Pass Rate (passed user / total user)
14458 Taiko no Tatsujin
14459 Valence-Arousal Model
14460 Find The Way Out
14461 Rotate Matrix

14458 - Taiko no Tatsujin   

Description

太鼓之達人系列(日語:太鼓の達人,英語:Taiko no Tatsujin,又譯作「太鼓達人」)是一款於2001年起由南夢宮(現:萬代南夢宮遊樂,家用版由萬代南夢宮工作室開發並由萬代南夢宮娛樂發行)發售的業務用大型電玩音樂遊戲系列作品。遊戲玩法與科樂美的Bemani系列類似,玩家需要配合音樂,敲打機台上的日本傳統樂器「太鼓」的框體,從而打出正確的節奏。

其中一種分數判定「真打模式」,分數計算將不受連段(Combo)影響,單純計算音符分數。

遊戲某版本的真打模式給分標準如下:

 

良(good)

1080

大音符特良(GOOD)

2160

可(ok)

540

大音符特可(OK)

1080

不可(bad)

0

 

資料來源:https://zh.moegirl.tw/%E5%A4%AA%E9%BC%93%E4%B9%8B%E8%BE%BE%E4%BA%BA%E7%B3%BB%E5%88%97

 

給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:GetScore()

function.h:

typedef enum TaikoScore {
    good,  // 良
    GOOD,  // 大音符特良
    ok,    // 可
    OK,    // 大音符特可
    bad    // 不可
} TaikoScore;

 

typedef struct TaikoNote {
    enum TaikoScore NoteScore; // 此音符的判定
    struct TaikoNote *next;    // 下一個音符的記憶體位置
} TaikoNote;

 

Methods:

- int GetScore(TaikoNote *firstNote) – 需不斷的拜訪傳進的TaikoNote記憶體的下一個TaikoNote記憶體(next)直至結束(NULL),並根據判定(TaikoScore)與表格中的給分標準返回最終得分

hint:

  1. 可以透過迴圈和*next來不斷拜訪並取得下一個TaikoNote

  2. 可以透過判斷TaikoNote記憶體是否為NULL,來決定是否終止迴圈

 

function.c

#include "function.h"
int GetScore(TaikoNote *firstNote) {
    // TODO
}

Input

TTTTTTTTTTTTTTT

 

Note:

  1. 輸入 15 個字元 T 分別代表15個音符的評分

  2. T 為 'G', 'g', 'O', 'o', 'b'  其中一種

  3. 無需處理輸入

Output

輸出符合以下格式:

Score: *score

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')

  2. 無需處理輸出

Sample Input  Download

Sample Output  Download

Partial Judge Code

14458.c

Partial Judge Header

14458.h

Tags




Discuss




14459 - Valence-Arousal Model   

Description

Valence-Arousal模型是情感分類中的一種二維模型,用來描述情緒的狀態。該模型將情緒分為兩個關鍵維度:

  1. Valence(價性):指情緒的正負程度,也就是情緒的“好”或“壞”。這個範疇的情緒可以從極端的負面(如悲傷、憤怒)到極端的正面(如快樂、興奮)。

  2. Arousal(喚醒):指情緒的激烈程度,也就是生理或心理的激活水平。這個維度從低喚起(如冷靜、放鬆)到高喚起(如激動、焦慮)。

通過這兩個維度,可以將情緒放置在一個二維空間中,並以此來表示情感狀態。

 

給定主要執行程式main.c (題號.c)、以及Header檔function.h (題號.h);請試著完成Header檔中未實現的函式:SetValue()、GetEmotion()

 

function.h:

enum Emotion {
    HAPPY,    // high valence & high arousal
    RELAXED,  // high valence & low arousal
    ANGRY,    // low valence & high arousal
    BORED     // low valence & low arousal
};

 

typedef struct VA {
    int Valence;
    int Arousal;
} VA;

 

Methods:

- void SetValue(VA *va, int _valence, int _arousal)  – 設定VA中Valence和Arousal分數

- enum Emotion GetEmotion(VA *va)  – 根據傳入的*va值回傳情緒類型

Note:

  1. Valence、Arousal分數的範圍為0~100

    • 0 <=  _valence <= 100

    • 0 <=  _arousal <= 100

  2. 當分數位於範圍0~49,判斷為low;當分數位於範圍50~100,判斷為high

    • 舉例:Valence = 76 , Arousal = 84 → high valence & high arousal

 

function.c

#include "function.h"
 
void SetValue(VA *va, int _valence, int _arousal) {
    // TODO
 
}
 
 
enum Emotion GetEmotion(VA *va) {
    // TODO
}
 

Input

Valence Arousal

 

Note:

  1. 無需處理輸入

Output

輸出符合以下格式:

Emotion: emotion

 

Note:

  1. 輸出的最後必須要有一個換行符號 ('\n')

  2. 無需處理輸出

Sample Input  Download

Sample Output  Download

Partial Judge Code

14459.c

Partial Judge Header

14459.h

Tags




Discuss




14460 - Find The Way Out   

Description

給定一個6*6的二維陣列(稱作map),map中只會有’-’, ‘x’, ‘P’三者,分別代表「可走的路」、「不可走的路」、「人的位置」,請試著找出’P’)走到map最右上位置(map[0][5])的路徑。

 

Note:

  1. 人(’P’)的位置必在map左下角(map[5][0]

  2. 移動規則:若可以同時向右或向上移動則向右優先,向上次之(移動方向只會有「向右」、「向上」,不會出現「向左」、「向下」的情況)

說明:若無法向右,則向上

無法向右的情況:

  • 超過地圖邊界

- - - - - -

- - - - - P

- - - - - -

- - - - - -

- - - - - -

- - - - - -

 

  • 右邊為不可走的路

- - - - - -

- - - - - -

- - - - - -

- - P x - -

- - - - - -

- - - - - -

 

  • 右邊為死路(向右後的下一步無法向右和向上)

- - - - - -

- - - - - -

- - x - - -

- P - x - -

- - - - - -

- - - - - -

 

Input

map

 

Note:

  1. map為6*6的二維陣列,其中只會有’-’, ‘x’, ‘P’ 三者其一

Output

輸出比須符合以下格式:

stepRecord

    

 

Note:

  1. 輸出的最後必須有一個換行符號 (“\n”)

  2. stepRecord為字串,紀錄人(’P’)到map[0][5] 的路徑

  3. 字串stepRecord 中只會有’R’, ‘U’,分別代表「向右」、「向上」

Sample Input  Download

Sample Output  Download

Tags




Discuss




14461 - Rotate Matrix   

Description

給定一個整數(稱作times),和一個4*4的整數陣列(稱作matrix),請試著將4*4的整數陣列matrix 以順時針方向旋轉times 次,並印出。

 

 

Input

times

matrix

 

Note:

  1. 0 <= times <= 2147483647,代表順時針旋轉次數

  2. matrix 為4*4的整數陣列

  3. 0 <= matrix[i][j] <= 99

Output

輸出必須符合以下格式:

matrix

    

Note:

  1. 輸出的最後必須有一個換行符號 (“\n”)

  2. 輸出至左對齊

整數陣列matrix中每個元素輸出共佔3格(元素本身 + 空格)

Sample Input  Download

Sample Output  Download

Tags




Discuss