C_and_CPP 板


LINE

嗯...雖然解出來了,不過有個時間最佳化的問題, 這是一小段code //如果字元出現次數為質數,則印出該字元 for(int i=48;i<ASCII_PRINTABLE_MAX;i++){ if(ascii[i]>1 && isPrime(ascii[i])){ prime=true; putchar(i); } 本來把"字元出現次數"歸零的工作 ,是放在下面,不過我想在這邊順便 歸零,於在這邊是加入這段 mascii[i]=0; ,然後把下面綠色的拿掉。結果我自己試 ok,送出去又不行了...看起來從if後面把ascii[*] 歸零都可以啊 } //若沒有出現次數為質數的字元,印出empty if(!prime) cout<<"empty"; putchar('\n'); prime=false; //字元出現次數歸零 for(int i=48;i<ASCII_PRINTABLE_MAX;i++) ascii[i]=0; } 完整+色彩標示的code http://costbook.googlepages.com/10789-3_cpp.html ※ 引述《ledia (contemplation)》之銘言: : ※ 引述《costbook (CB)》之銘言: : : char ascii[ASCII_PRINTABLE_MAX]; : 如果出現次數大於 128, 甚至 256 : 用一個 char/unsigned char 就計不下了 : 所以你 2001 剛好是對的真的運氣很好 : 我用 1999 測, 你的程式就錯啦 :p : 我以前也死在這種小地方過 Orz : 重點就是多測點測資, 看看有沒有異常囉 -- 年度6大搞笑發言 同學A:機械式鍵盤耶,好爛喔... │同學D:這是個4對16的多工器 同學B:腳踏車也有碟煞喔,騙誰...│同學E:我要寫遊戲外掛 同學C:iPod的音質很好 │同學F:C++除了class,根本就和C一樣 --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.139.153.131
1F:→ costbook:1ACM online judge的系統真的怪怪的... 07/03 20:13
2F:→ costbook:我把這三行宣告的順序換了一下 07/03 20:13
3F:→ costbook: int count=0; 07/03 20:13
4F:→ costbook: bool prime=false; 07/03 20:13
5F:→ costbook: char in; 07/03 20:13
6F:→ costbook:就出現runtime error,換回來又好了... 07/03 20:13
7F:→ costbook:不過歸零的問題還是搞不懂 07/03 20:27
8F:推 ledia:如果我沒算錯的話, 你新的 code, ascii 只有 126 格 07/03 21:01
9F:→ ledia:但是 ASCII_PRINTABLE_MAX 是 127 07/03 21:01
10F:→ ledia:因此你歸零會歸到 ascii[126] 這是會出問題的 07/03 21:02
11F:→ ledia:run-time error 或 wrong answer 可能因此而來 07/03 21:02
12F:→ ledia:對了, 寫到第 ascii[126] 時, 就是寫到之前的 stack var 07/03 21:03
13F:→ ledia:也就是 in, prime 那些變數 07/03 21:03
14F:→ ledia:這次我只用看的, 沒測過, 有沒有別的問題我就不知道了 07/03 21:04
15F:推 costbook:對耶...謝啦 (不過只快了0.001秒...) 07/03 21:07
16F:推 ledia:這個加不了多快的... 07/03 21:16
17F:→ ledia:要加快的話, 我建議把 prime 先算好存在 table 裡... 07/03 21:16
18F:→ ledia:最一開始一次算出來, 以後怎麼查都是一次 table-lookuup 07/03 21:17
19F:→ ledia:isPrime 才應該是瓶頸處 07/03 21:18
20F:→ ledia:然後, 分三段 for 可能可以減少一點時間.. 也可能減不了 07/03 21:19
21F:→ ledia:不過至少少 process 一些不可能出現的字元 07/03 21:19
22F:→ ledia:歸零也不需要每個都歸, ascii[i]>0 和 isPrime 拆開 07/03 21:20
23F:→ ledia:ascii[i] > 0 時才需要歸零 07/03 21:21
24F:→ ledia:想到的大概就這些.. 再麻煩一點的.. 就懶得想了 XD 07/03 21:21
25F:推 costbook:好方法,來試試看 07/03 21:27
26F:推 costbook:結果:時間一樣,記憶體用量變大.可能試測資太小, 07/03 21:45
27F:→ costbook:所以看不出效果....算了,去研究下一題了 07/03 21:46
↑我自己發文的...我幹嘛用推文回啊 ※ 編輯: costbook 來自: 220.139.153.131 (07/03 21:48)
28F:推 drkkimo:= =...||| 07/03 21:49
29F:→ drkkimo:解說完整喔~ 收錄精華裡給其他人(新手)參考 07/03 21:49
30F:推 cplusplus:用篩法 大概0.008 參考一下吧 07/03 22:36
31F:推 drkkimo:嗯 不過篩法花空間~ 07/03 23:14
32F:推 cplusplus:這一題空間很小啦 而且現在排名排時間 時間比較寶貴XD 07/03 23:51
這個...我寫出來的篩法....好像不太對, 雖然拿了accpeted... //利用篩法清除非質數 inline void sievePrime(int *ptr){ for(int i=2;i<2001;i++){ if(i*i>=2001/2) break; for(int j=48;j<ASCII_PRINTABLE_MAX;j++){ if(ptr[j]==1) ptr[j]=0; else if(ptr[j]==2); else if(ptr[j]>i && ptr[j]%i==0) ptr[j]=0; } } } ※ 編輯: costbook 來自: 220.139.153.35 (07/04 15:42)







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Gossiping站內搜尋

TOP