[精讚] [會員登入]
5743

【C++】如何解決TLE,換句話說便是加速cin, cout的執行速度

[ZERO JUDGE](UVa) a159: 11743 - Credit Check 題目練習和副程式練習

分享此文連結 //n.sfs.tw/14833

分享連結 【C++】如何解決TLE,換句話說便是加速cin, cout的執行速度@小編過路君子
(文章歡迎轉載,務必尊重版權註明連結來源)
2020-12-04 04:34:41 最後編修
2020-11-27 08:55:45 By 過路君子
 

哈囉大家好,這裡是快被自己給掐死的小編過路君子

因為一個邏輯錯誤,害小編自己找了快兩個小時的Bug,為啥在紙上跟打程式碼時的想法會有出入啊?

 

這一題是真的有夠狠(相關題目往這裡走),程式本身不難,難就是難在如何解決TLE(執行超時)的問題,根據小編去翻找他人的解題報告,發現疑似資測超過50000筆......

看最快所需跑完的秒數,最快最快的人也花了0.3秒才執行完,但不知道是不是用#include<iostream>,說不定還是使用#include<cstdio>。

 

通常這題會寫不過都幾乎不是因為程式寫錯,用cin和cout則會因為一些機制大幅度拖慢了執行的速度而造成TLE(執行超時),最簡單的解決方式就是在int main()的開頭加上以下兩行程式碼:

std::ios_base::sync_with_stdio(false);
std::cin.tie(0);

至於為什麼則可以參考這篇文章,此篇文章的作者除了有詳細的講解還有實際測試給各位看,寫得已經非常的好了,絕對不是小編懶得在這裡寫一長串解釋出來。

那就不再廢話了,下面就直接丟出完整程式碼給各位參考一下上方那兩行實際在寫入的時候寫在那裡會比較好,話說題目給的第一個數字小編完全沒有用到啊!小編將他存入變數v裡面之後就沒有再管他了。

 

完整程式碼(解答):

 

實際執行畫面:

(點擊每張圖片皆可放大檢視)

test.txt內容:

6
5181 2710 9900 0012
5181 2710 9900 0017
5181 2710 9900 0111
1010 1000 1001 0100
0000 0000 0000 0000
4900 3985 6038 3078

 

解題過程:

 

 

 

後記:

最近跟別人聊天聊到撰寫文章的時候,小編表示好懶,能不能貼一堆程式碼來充字數讓文章看起來好像很厲害?於是乎,就開始在精讚上面發水文章了,小編就爛!

雖說是水文章,但也找Bug找了很久...看上面的解題過程就知道了......

END

你可能感興趣的文章

【C++】一些好用的C++小功能 —— 貳 承襲上一篇的C++小功能,筆記下來以免自己以後忘記了。

【Javascript】(Event)常用的網頁事件 不寫下來絕對下又會忘記,然後每次又都要回到MDN去查,麻煩

【JDA/discord bot】刪除事件或slash(斜槓)指令的reply訊息 如何正確的等待 Async 的結束,在進行接下來的刪除訊息動作

【Discord bot】(ERROR)await self.bot.wait_for() 大坑 今天真的是採到大坑,只找到解決方法,具體原因不明

【C++】使用SFML製作讓方塊落下的畫面 從開啟新視窗延伸過來的應用(?),配合上一篇所使用到開啟一個可渲染視窗的那堆程式碼的延伸。

【C++】如何解決TLE,換句話說便是加速cin, cout的執行速度 [ZERO JUDGE](UVa) a159: 11743 - Credit Check 題目練習和副程式練習

隨機好文

高捷少女:美麗島的守護者① 婕兒跟耐耐嚇得臉色發白。「耐耐,小穹有這方面的愛好喔?」婕兒小聲地說。耐耐默默的拿出筆記本,臉上浮現一層微笑:「這麼大的新聞,要趕快記下來!」

高捷少女:美麗島的守護者(終) 「我是她的師娘,妳一定就是艾米莉亞吧?小雅昨晚有跟我說到您。」「師娘?」艾米疑惑不解。

高捷少女:耐耐的新年驚喜② 「各位,我跟爸媽聊完了……」耐耐走進客廳,看到大家在看自己的相簿,臉蛋立刻紅了。「哇啊啊,不要看那個!」她三步併作兩步地走向少女們,將相簿拿走。「為什麼啊?小時候的耐耐很可愛啊。」婕兒不解地說。

婕兒──她的青春② 艾米直搖頭。「我真不敢相信,小穹妳都二十幾歲了,為什麼能想出這種故事呀?」「婕兒也是二十幾歲啊,妳想想她現在是什麼樣子?」小穹不滿地指向火車的方向。

【歌評】蓮台野夜行-少女幻葬~ Necro-Fantasy 這首歌就像墜入無盡深淵的同時面臨最終決戰;不管贏還是輸,你終將失去一切,永遠消失