#17005: C的


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

School : No School
ID : 88611
IP address : [39.8.203.54]
Last Login :
2019-05-30 22:56:25
d244. 一堆石頭 | From: [27.52.9.157] | Post Date : 2019-02-27 22:08

這題要宣告一個全域陣列 

int stone[1000000][2]={0};

因為測資可能很大,所以我宣告了一百萬個編號

stone[ i ][ 0 ] 是石頭的編號,stone[ i ][ 1 ] 是該編號的石頭出現次數

讀取時從 stone[ 0 ][ 0 ] 開始,若 stone[ i ][ 0 ] == 讀取的編號 a,stone[ i ][ 1 ] 加一

若都不等於,表示為新編號,假設當前已知 n 個編號 ( stone[ 0 ][ 0 ] ~ stone[ n - 1 ][ 0 ] )

則 stone[ n ][ 0 ] = a ,n ++

不需要排序,每次讀新編號,從 stone[ 0 ][ 0 ] 到 stone[ n - 1 ][ 0 ] 線性搜尋

讀完後,從 0 ~ n - 1 ,若 stone[ i ][ 1 ] 不能被 3 整除,stone[ i ][ 0 ] 就是答案

 
ZeroJudge Forum