#16474: C的


freedom501999@gmail.com (帥氣魔方生)

School : No School
ID : 88611
IP address : [39.8.203.54]
Last Login :
2019-05-30 22:56:25
d892. NOIP2010 1.机器翻译 -- NOIP2010提高组第一题 | From: [27.52.77.116] | Post Date : 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