3147 - IP_2024_YOU_FIN Scoreboard

Time

2024/12/17 15:25:00 2024/12/17 18:30:00

Clarification

# Problem Asker Description Reply Replier Reply Time For all team

# Problem Pass Rate (passed user / total user)
14560 Queens and A King
14561 Valence-Arousal Model
14562 Rotate Matrix (complex ver)
14563 Taiko no Tatsujin (complex ver)

14560 - Queens and A King   

Description

在西洋棋中,每一顆棋子的移動方式都不太一樣。其中皇后是殺傷力最強的棋子,可以移動的範圍最廣,它可以直著走、橫著走、以及斜著走,而且在沒有其他棋子的阻攔下,移動範圍沒有限制;國王是最為寶貴的棋子,它主宰著比賽的勝利,雖然它一樣可以直、橫、斜著走,但是每次最多只能移動一格

(Excerpted from wiki: https://en.wikipedia.org/wiki/Chess)

給定一個8x8的西洋棋棋盤,並且在其中放置不定數量皇后棋子,和一個國王棋子;請試著印出所有國王可以移動到的安全的格子(包含當下所在的格子),並按照左上至右下的順序排列

 

Note:

1.       利用字元‘-’來代表棋盤中的空格

2.       利用字元‘K’來代表棋盤中的國王

3.       利用字元‘Q’來代表棋盤中的皇后

4.       字元之間存在著空格將其分開

 

Input

一個棋子擺放其中一定有一個國王,和不定數量的皇后(可能沒有)

Output

輸出符合以下格式:

R1,C1

R2,C2

...

Rn,Cn

 

Note:

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

  2. 如果沒有任何可以移動的格子,請輸出”none\n

Sample Input  Download

Sample Output  Download

Tags




Discuss




14561 - 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

14561.c

Partial Judge Header

14561.h

Tags




Discuss




14562 - Rotate Matrix (complex ver)   

Description

給定一個整數(稱作times),和一個4*4的整數陣列(稱作matrix),請試著將4*4的整數陣列matrix 逆時針方向旋轉times 次後,再水平翻轉1次,並印出。

 

 

Input

times

matrix

 

Note:

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

  2. matrix 4*4的整數陣列

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

 

 

Output

輸出比須符合以下格式:

matrix

    

Note:

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

  2. 輸出至左對齊

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

Sample Input  Download

Sample Output  Download

Tags




Discuss




14563 - Taiko no Tatsujin (complex ver)   

Description

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

其中一種分數判定「通常分數」,分數計算將隨在燃燒段額外增加分數。

遊戲某版本的通常分數計分方式如下:

 

 

通常

燃燒段

良(good)

400

480

大音符特良(GOOD)

800

960

可(ok)

200

240

大音符特可(OK)

400

480

不可(bad)

0

0

小黃條連打(renda) 

100/打

120/打

大黃條連打(RENDA)   

200/打

240/打

 

資料來源: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,   // 不可
    renda, // 小黃條連打
    RENDA  // 大黃條連打
} TaikoScore;

 

typedef struct TaikoNote {
    enum TaikoScore NoteScore; // 此音符的計分類型
    int isFever;    // 是否進入燃燒段,1為進入燃燒段,0為否
    int rendaCount; // 連打數,若為renda或RENDA將紀錄連打數,其他音符則為0
    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

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

T f c

 

Note:

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

  2. T 為 'G', 'g', 'O', 'o', 'b', 'R', 'r' 其中一種,f為1或0(1代表進入燃燒段,0代表以通常計分),c為連打數(若T為'R'或'r',將輸入連打數,T為'G', 'g', 'O', 'o', 'b'時為0)

  3. 無需處理輸入

Output

輸出符合以下格式:

Score: *score

 

Note:

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

  2. 無需處理輸出

Sample Input  Download

Sample Output  Download

Partial Judge Code

14563.c

Partial Judge Header

14563.h

Tags




Discuss