# 程式設計期末考 功課解題思緒 ## 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. **再根據根分離左右支樹**
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up