OAQ 的期中考
7101 寶石奇兵 容許的排序演算法: Θ(n lg n) , ex: merge sort, quick sort, heap sort…. 排序的標準: (1) 分數愈大愈前面 (2) 時間愈短愈前面 (3) 字典排序愈小愈前面 最後再循序找名次就可以了。
7101 寶石奇兵 寫排序的時候,好像很容易錯亂 ? 不,其實框架都是固定的。 假設把這個 struct 當成 int 來看的話呢? node a[100], 只需要把 a[i] 和 a[j] 比大小就好 !! 不如寫個 function 比大小
7101 寶石奇兵
這樣的話, sort 會變什麼樣子 ( 以 merge sort 為例,依此類推 ) 原始的 merge sort 修改的 merge sort
7101 寶石奇兵 其實比對字串大小的話,可以愛用 strcmp , int strcmp ( const char * str1, const char * str2 ); 字串比對可以多使用函式庫: ( 可參考以下網址 )
7102 完美洗牌 2.0 這是錯的 OAQ N=26, 2*N = 52 時是個特例 (Dr. Hon 上課時有證明 ) 以 6 張牌來說: 1 必定跟著 2 的腳步,2 必定跟著 4… 1->2->4->1(cycle!!) 3->6->5->3(cycle!!) 因此,我們要找的是各張牌在哪個 cycle ,再看走了幾步。
7102 完美洗牌 2.0 怎麼去找 cycle??????????????????????? 1 個人必定只跟著 1 個人。
7103 切割木棍 其實就跟作業沒兩樣 …. 唯一要注意的 case 是 N=1 的時候,因為不用切割,所以成 本是 0 。
7104, 7105 陣列和問題連發 7108, 7109 棋盤問題連發 橫的加直的加
7104, 7105 陣列和問題連發 7108, 7109 棋盤問題連發 淺咖啡的是重覆減掉的地方,所以要加回來。
7104, 7105 陣列和問題連發 7108, 7109 棋盤問題連發 然後就不加直的了 …
7104, 7105 陣列和問題連發 7108, 7109 棋盤問題連發
7106 珍珠項鍊 這其實也是作業題,小小變化一下就可以了。
7109 消字遊戲 把 LRUDFB 視為 []{}() ,就變成作業題目了 XD
7010 少年湯姆的煩惱
題外話 好的排版有助於 debug 以及程式邏輯比較不會混淆 ~~
OAQ 請大家不要擔心分數問題。 有努力就會有相對的回報 !!