---
# System prepended metadata

title: 程式設計期末考 功課解題思緒

---

# 程式設計期末考 功課解題思緒
## F441
- **輸入格式**
    輸入的第一列有兩個整數 N 和 S 表示試卷題數和每題分數。
    第二列有 N 個數字分別代表第 i 題的答案 Ai。
    第三列有一個整數 M,表示待批改的學生個數。
    接下來 M 列,每列有 N 個數字表示一位學生答題的 N 個答案 Xi 。
- **輸出格式**
    依序輸出每一個學生分數,分數以換行隔開。
- **輸入範例**
6 10            **試卷題數和每題分數**
1 3 2 1 4 1     **代表第I題的答案**
1               **批改學生數**
1 3 1 4 1 1     **學生答案**
- **輸出範例**
30              **學生分數**

## D108
- 給你n根火柴棍，你可以拼出多少個形如“A+B=C”的等式？等式中的A、B、C是用火柴棍拼出的整數（若該數非零，則最高位不能是0）。
- **注意:**
    - 加號與等號各自需要兩根火柴棍
    - 如果A≠B，則A+B=C與B+A=C視為不同的等式（A、B、C>=0）
    - n根火柴棍必須全部用上
- **輸入說明**
輸入共一行，是一個整數n（n<=24）。
- **輸出說明**
輸出共一行，表示能拼成的不同等式的數目。

- **範例輸入** 
    - 樣例1：
    14 **給予14根火柴**
    - 樣例2：
    18 **給予18根火柴**
- **範例輸出**
    - 樣例1：
    2      **會有2種等式**
    - 樣例2:
    9      **會有9種等式**

- 這題要使用**窮舉法**

## E973
- **輸入說明**
    - 第一行有一個正整數 N (1 <= N <= 2^63 − 1)，代表該問卷各題的滿意度。（若以 long long int 型態變數儲存 N，以 scanf() 讀入時，請以 %lld 作為格式指定字串。）
- **輸出說明**
    - 對於每筆測資輸出 K (1 <= K <= 10) 個滿意度值，K 代表 N 中 0 ~ 9 有出現過的滿意度值個數。由左至右的滿意度出現次數由高至低，次數一樣則輸出滿意度值小者。滿意度值彼此間以空白間隔。

- **範例輸入**
2425264426558 **各個滿意度的分數**
- **範例輸出**
2 4 5 6 8    **滿意度分數出現次數排列(由多到少)**

- 這題只要去算**有幾個一樣的數字**就可以了

## E801
- **輸入說明**
    - 輸入的第一行為一個正整數 N (1<= N <=10^5 )，代表學校的課程數量。接著有 N 行，每行代 表一堂課程，有三個正整數，D (1<=D <= 5) 代表課程在星期幾，S (1<=S<= 9) 代表課程起始時 間，T (S < T<=10) 代表課程結束時間。
- **輸出說明**
    - 對每筆資料請輸出一列，代表小新能選的最多且不衝突的課程總數。

    - 說明：範例 1 中，星期一就一堂，星期二只能選一堂；星期三可以七點上到八點，然後八點上到九點, 所以共4個課程。

- **範例輸入** 

|5 |**學校課程數量**| |
|----|----|---|
| 1   課程日期  | 1   課程起始時間  | 10  課程結束時間   |
2 |3| 4
2 | 3 | 5
3 |7| 8
3 |8| 9
- **範例輸出**
4 **最多可以選到且不衝突的課程**

- 這題**重複的時間**做刪除(可以畫時間線)

## D861（必考）

- **注意:**
    - **前序排列**
        - 根節點、左子節點、右子節點，根排在前面
    - **中序排列**
        - 左子節點、根節點、右子節點，根排在中間
    - **後序排列**
        - 左子節點、右子節點、根節點，根排在後面
- **額外:**
    - **層序排列**
        - 順序是由根節點一層一層往下，由左往右。
- **輸入說明**
    - 第一行為一棵二叉樹的中序排列；
    - 第二行為一棵二叉樹的後序排列。(沒意外的話題目打錯)
- **輸出說明**
    - 輸出這棵二叉樹的前序排列。

- **範例輸入**
BADC 中序排列:左子節點、根節點、右子節點，根排在中間
BDCA 後序排列:左子節點、右子節點、根節點，根排在後面
- **範例輸出**
A B C D 前序排列:根節點、左子節點、右子節點，根排在前面

- **解題方式**
1. **先找根** 
    - 後序排列找出根
2. **根據根分離找出左右支樹**
    - 中序排列分離左右支樹
3. **左右支樹再找根**
    - 中序排列找根(先出現即為根)
4. **再根據根分離左右支樹**