×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
解題報告
#16474:
freedom501999@gmail.com
(帥氣魔方生)
學校 : 不指定學校
編號 : 88611
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [39.8.203.54]
最後登入時間 :
2019-05-30 22:56:25
d892.
NOIP2010 1.机器翻译
--
NOIP
2010
提高组
第一题
| From: [27.52.77.116] | 發表日期 : 2019-01-04 12:32
這題看起來像佇列,實際上的確是 (廢話~
不過只需要一個索引就夠了
在全域宣告一個陣列 A[100] 跟索引 ptr = -1
每當讀到一個新值 n,A[ ++ptr ] = n
同時內存總數加一,當內存第一次滿,也就是 ptr +1 第一次 == M ( 總大小 )
先讓 ptr = -1 ,再覆蓋舊值 A[ ++ptr ] = n ,原理是內存滿的時候,資料頭尾會在陣列內遇到
ptr 是最新的資料,他的下一個就是最早的資料,所以可以放心覆蓋,每次 ptr +1 == M,ptr = -1
至於搜尋,只要從 0 號 開始,到當前內存總數減一的範圍,例如內存 10 格,目前佔 8 格,就是搜尋從 0 到 7 號
這樣不需要管資料實際上的新舊,省去麻煩
本題是先搜內存,找不到就把新值丟進去,並且查閱次數加一,周而復始,找完後答案即出
ZeroJudge Forum