[ACM ] d550. 物件排序 TLE

看板C_and_CPP (C/C++)作者 (不好玩)時間16年前 (2010/07/02 00:26), 編輯推噓5(5022)
留言27則, 7人參與, 最新討論串1/1
( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) ( 未必需要依照此格式,文章條理清楚即可 ) 題號: http://zerojudge.tw/ShowProblem?problemid=d550 遇到的問題: *** 第 6 點 (10%):TLE (1s) 執行逾時(1s)!! 請檢查是否產生無限迴圈或尋找更好的演算法 有問題的code: (請善用置底文的標色功能) 不論是: 利用BinarySearchTree http://codepad.org/idXxR5iA 抑或是: 利用動態2維陣列再quicksort http://codepad.org/Y34tidcs 都在第 6 點 TLE , 另我十分苦惱。 是否有大大能指點一下迷津,我不是相關科系畢業的, 所以寫出來的東西會有點像是東拼西湊出來的請見諒。 補充說明: -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.116.241.169


07/02 00:59, , 2F
在台灣的用法直的明明就稱為「行」...
07/02 00:59, 2F

07/02 01:04, , 3F
我用C++的sort()就過了 XD
07/02 01:04, 3F

07/02 01:04, , 4F
後來發現他的基底非常多, radix sort 行不通, 概念是
07/02 01:04, 4F

07/02 01:05, , 5F
相同的, 第一次排序只比較最後一列的數字, 第二次只
07/02 01:05, 5F

07/02 01:06, , 6F
比較倒數第二列的數字, 依此類推...但是這又要考慮排
07/02 01:06, 6F

07/02 01:07, , 7F
序法的穩定性 : http://tinyurl.com/2785anl , 可以考
07/02 01:07, 7F

07/02 01:08, , 8F
慮把快速排序成其他排序法, 像是合併排序、插入排序等
07/02 01:08, 8F

07/02 01:13, , 9F
回 bibo9901 大, 您應該是在每兩列的紀錄比較時, 是逐
07/02 01:13, 9F

07/02 01:14, , 10F
行比較的關係吧?
07/02 01:14, 10F

07/02 01:23, , 11F
建議原po可以把每一列的資料包成一個物件, 或是直接用
07/02 01:23, 11F

07/02 01:25, , 12F
vector 來存, 然後在 swap 的時候改成「換指標」即可
07/02 01:25, 12F
stl的東西我都沒學過不知道該如何使用,love大能分享一下作法嗎? 感恩.. 我把quicksort中的swap改成指標互換就AC了,真是一語點醒夢中人

07/02 02:08, , 13F
關鍵根本在要用scanf讀input..
07/02 02:08, 13F

07/02 02:11, , 14F
不需要指標, vector交換並不會慢多少
07/02 02:11, 14F

07/02 02:11, , 15F
是喔 XD
07/02 02:11, 15F

07/02 03:42, , 16F
測試結果 : vector交換還是TLE Q_Q
07/02 03:42, 16F

07/02 08:44, , 17F
這題橫列排序比直行排序快個10來ms。
07/02 08:44, 17F
※ 編輯: unfun 來自: 60.250.238.157 (07/02 09:27)

07/02 11:18, , 18F
用你原本的方法會比較快 ~ " ~
07/02 11:18, 18F

07/02 11:22, , 19F
全用C++標準庫好像很難AC ...
07/02 11:22, 19F

07/02 12:01, , 20F
有沒有大大能幫我把樹改成能AC的樹
07/02 12:01, 20F

07/02 12:15, , 21F
普通的BST會遇上歪斜樹的情況, 運算量會很龐大
07/02 12:15, 21F

07/02 12:18, , 22F
http://codepad.org/uBEyfFD5 <= 單純用 C qsort 寫的
07/02 12:18, 22F

07/02 12:19, , 23F
能 AC 但速度沒有很快
07/02 12:19, 23F

07/02 14:34, , 24F
指標的指標,動態malloc會快一些。
07/02 14:34, 24F

07/02 14:36, , 25F
到最後會發現方法都差不了多少,全讀字元轉整數最快了。
07/02 14:36, 25F

07/09 15:59, , 26F
你在用cin or cout時系統丟出例外,.
07/09 15:59, 26F

07/09 16:00, , 27F
請忽略樓上...pcman 秀逗了.
07/09 16:00, 27F
文章代碼(AID): #1CBC6Tsz (C_and_CPP)
文章代碼(AID): #1CBC6Tsz (C_and_CPP)