天天看小說

第247章 對拍、Day1第三題

沒錯,剛纔的猜想是憑直覺和少量筆算搞出來的。

要想驗證自己的猜想,除了數學證明,最實用的方式就是對拍。

所謂對拍程序,通俗的說法,就是數據比較器。

方法很簡單。

將窮舉暴力搜索版本的代碼,編譯成可執行文件a;

將運用了猜想,優化後的代碼編譯成b;

然後編寫一個隨機數據生成器,命名爲rand;

接下來,就可以製作對拍程序了。

代碼的主體是個有限次的循環。

循環體內部,核心部分是幾個 system()函數。

先調用“./rand“生成隨機數據,存入s.in,再分別調用a、b,讀取s.in,輸出a.out 和b.out兩個文本文件。

最後調用“diff a.out b.out“,進行比較。

如果發現兩個文本文件不一致,則說明優化後的程序有問題,於是提示錯誤信息以及出錯原因。

這就是對拍,號稱最強的調試辦法,比GDB之類的調試工具好用多了。

江寒寫完對拍之後,設了一個60000次的循環,花了2分多鐘跑完一遍。

結果沒有輸出任何錯誤信息,這表示自己的猜想是完全成立的。

下一步,就該把優化後的代碼擴展到高精度了。

這一步對很多選手來說,都是個難點,很容易大意之下,寫漏一些條件。

比如位數的最大值處理得不好,或者犯下其他的小失誤,就會導致運算出bug。

倒也不一定完全不能運行,只是碰到特殊數據時,可能會得出不正確的輸出。

運氣好的時候,也能正常得分,運氣差一點,可能就會丟分了。

高精度運算的基本原理,是模擬手工列豎式計算,其中要考慮數位對齊和進位、借位處理。

這種代碼在網上有的是,但運算效率上,那些比較常見的代碼,就有點不敢恭維了。

江寒在刷《NOIP寶典》的時候,自己研究出來了一種高精度算法,可以說是不傳之秘,比網上能找到的示範代碼,要精簡和巧妙很多。

在這道題裡,江寒要做的就是模擬手算高精度乘除法。

如果不打高精度,那麼最多僅能滿足40%的數據要求。

這道題滿分100,能看懂題目,並寫出暴力搜索算法,就能20分。

能發現規律,寫出快速排序,就能得到40分。

對於實力有限,有自知之明的選手,做到這裡就可以收手了。

只有那些對自己足夠自信,且能熟練編寫代碼進行高精度運算的人,纔會繼續改造算法,以衝擊高分。

高精度的乘法好寫,除法就稍微有點難度了。

這裡又有兩種選擇,一個是寫高精除高精,滿足100%的輸入數據要求。

要麼就退而求其次,被除數爲高精度,除數爲單精度,這樣也可以滿足至少60%的輸入數據要求。

寫對高精除以單精,能得60分,寫出高精除以高精,纔有機會得到滿分。

但高精除以高精,是相當複雜的,一旦寫錯、寫漏了條件,說不定反而得不償失,連60分都得不到。

所以,是保證到手60分,還是冒著浪費時間的風險,衝擊一下滿分?

對於其他人來說,這當然是個艱難的抉擇,但對於江寒來說,根本無需糾結。

反正時間也有的是,當然是選擇後者了。

江寒花了大約半個小時,寫出了雙高精除法的版本,並調試通過。

然後設計了幾組極限數值,代入進去運算,結果與筆算結果完全一致。

邊界條件沒問題,這個程序出問題的機率就相當低了。

倒也不是不能用系統作弊。

做出爆搜程序後,可以通過20%的校驗點,系統就提示了一次獲得“學以致用”積分。

運用了猜想,改爲快速排序後,系統再次提示,獲得了“學以致用”積分。

改成高精度後,系統也有獲得更多積分的提示。

這說明,江寒對程序做出的每次改進,都能使其通過更多的校驗點。

但系統的幫助也只能到這裡了,只能據此判斷出,每個步驟中的程序,都是可以得分的,卻無法判斷出是否能得到滿分。

江寒只能依靠自己豐富的編程經驗,儘可能保證程序無BUG。

搞定了前兩道題後,時間已經過去了1個半小時。

剩下的兩個小時,全部交給最難的第三題。

題目是《開車旅行》。

題目概述:將N個城市編號爲1~N,編號小的城市在編號較大的城市之西。

各個城市海拔都不一樣,城市i的海拔爲Hi,城市i與j之間的距離d【i,j】爲兩城市海拔之差的絕對值。

也就是說d【i,j】=-Hi-Hj-。

A、B二人輪流開車,從A開始,每日輪換。

選擇一個城市S爲起點,一直向東,最多行駛X公里,就結束。

A、B駕駛風格不同,B總是沿著前進方向,選擇最近的城市作爲目的地,A總是沿著前進方向,選擇第二近的城市作爲目的地。

PS:如果兩個城市距離相同,則海拔低的視爲較近。

如果其中任何一人,無法按照自己的原則選出目的地,或者到達目的地會使公里總數超過X,就結束旅行。

輸入文件中包含如下內容:城市N的數目,城市1~N的海拔高度,X0,M組Si和Xi。

輸出文件中,要求回答兩個問題。

1、對於給定的X=X0,從哪一個城市出發,A開車行駛的路程與B開車行駛的路程比值最小?

2、對於任意給定的X=Xi和出發城市Si,A、B開車行駛的路程總數是多少?

說實話,這道題的難點,主要在於題目的表述比較複雜。

一般人光看懂題目,就至少需要15分鐘……

江寒也足足花了5分鐘,才搞清楚題目的意思。

但如果讓他評價這道題的難度……

勉強3星吧。

這個題目的簡單之處在於,哪怕用最笨拙的辦法,寫個暴力搜索程序,都能保底70分。

可以說是白給。

但如果想拿滿分,難度直接飆升到天際。

畢竟題目中規定:對於100%的數據,有1≤N≤100,000,1≤M≤10,000;

-1,000,000,000≤Hi≤1,000,000,000;

0≤X0≤1,000,000,000;

1≤Si≤N;

0≤Xi≤1,000,000,000。

其中,數據保證 Hi互不相同。

江寒很想吐槽,海拔的上限是10億,這麼高的地方,肯定不在地球上吧?

而海拔的下限-10億,這已經LOW穿地心了喂!

好吧,又是一個“艱難”的選擇,到底是穩定拿70分,還是冒著巨大的風險,衝擊更高的分數?

這道題的關鍵仍然是數據預處理。

預處理得好,直接難度減半。

關於預處理,有很多可行的辦法,離散化+鏈表、雙向鏈表、平衡樹……

甚至STL的set都可以。

但不能用複雜度爲O(n^2)的算法,那樣很容易在校驗時,時間超限。

畢竟根據規定,每個校驗點只有1秒的運算時間。

第140章 虛驚第282章 又一顆壞蘋果?第138章 避蚊胺,登山第313章 “僱傭兵”與“香餌”第183章 成功的路上沒有僥倖第16章 倔強的夏雨菲第102章 怎麼就這麼不好對付?第362章 社會我老方第264章 不知人間疾苦第115章 無線電發射器第294章 峰迴路轉,轉了又轉第63章 巧嗎?第217章 超級粉絲第336章 女爲悅己者容第302章 聳人聽聞,觸目驚心第218章 爲人實在,夠給面子第89章 進入狀態這麼快?第42章 P站阿婆主第405章 身手很好,飯來張口第76章 還有什麼是他不會的?第45章 火了第343章 差之毫釐,謬以千里第96章 暫時保管?第333章 不怕教壞了乖女兒?第372章 卷積神經網絡第66章 審覈過程第188章 金風玉露一相逢第414章 蚊子再小也是肉第288章 合理避稅第430章 超算落成,九段助陣第304章 不忘舊情,有恩必償第201章 組內學習競賽第250章 幸虧有雙保險第159章 想怎麼看,就怎麼看?第191章 好像只能擠一擠了第37章 烤肉第410章 六度分割理論?第357章 再給你一次機會第178章 “概率圖”上的天窗第179章 馬爾可夫隨機場第130章 大佬和小蘿莉第121章 還有誰會對自己這麼好?第415章 滿分入選國家隊第351章 送她點什麼?第393章 男人不能沒有事業第36章 家宴第43章 寫字機器人第333章 不怕教壞了乖女兒?第368章 能幹的小秘書?第105章 寶藏男孩第277章 學之力,9段!第368章 能幹的小秘書?第203章 誰支持、誰反對?第332章 大功告成,樂不思蜀第271章 破壞永遠比建設更容易第268章 最終版本第373章 肉體永生,還是機械飛昇?第192章 許文強和馮程程第257章 NOIP中最難的題型第256章 擴展歐幾里得算法,以及增強線段樹第318章 飛機點餐攻略第16章 倔強的夏雨菲第123章 BT小鳥第342章 蛇皮走位,初現鋒芒第288章 合理避稅第424章 又一個冠軍到手第415章 滿分入選國家隊第371章 莫非換了個女朋友?第419章 媽可能是親媽,爹……第140章 虛驚第19章 一切爲了押韻第130章 大佬和小蘿莉第202章 輸得明明白白第340章 實力還是運氣?第189章 查房第99章 老江很忙第268章 最終版本第310章 唯一的破綻第209章 校服就是最正式的裝扮第306章 就剩這麼幾個了第411章 不可不防,防不勝防第135章 巧合?考驗?第383章 全自動刷分第101章 偷換概念第279章 一舉成名天下知第25章 我想參加NOIP第237章 大魚和小魚第52章 “感知機”的初次實戰第307章 沒有證據可不行第299章 膽大妄爲,實力恐怖第79章 李東的Show time第38章 賣歌第246章 Vigenère密碼和國王遊戲第218章 爲人實在,夠給面子第93章 《泡沫》第83章 髮卡第285章 “彈性碰撞”第126章 八樓的直升飛機第251章 特效藥第174章 良心工作室
第140章 虛驚第282章 又一顆壞蘋果?第138章 避蚊胺,登山第313章 “僱傭兵”與“香餌”第183章 成功的路上沒有僥倖第16章 倔強的夏雨菲第102章 怎麼就這麼不好對付?第362章 社會我老方第264章 不知人間疾苦第115章 無線電發射器第294章 峰迴路轉,轉了又轉第63章 巧嗎?第217章 超級粉絲第336章 女爲悅己者容第302章 聳人聽聞,觸目驚心第218章 爲人實在,夠給面子第89章 進入狀態這麼快?第42章 P站阿婆主第405章 身手很好,飯來張口第76章 還有什麼是他不會的?第45章 火了第343章 差之毫釐,謬以千里第96章 暫時保管?第333章 不怕教壞了乖女兒?第372章 卷積神經網絡第66章 審覈過程第188章 金風玉露一相逢第414章 蚊子再小也是肉第288章 合理避稅第430章 超算落成,九段助陣第304章 不忘舊情,有恩必償第201章 組內學習競賽第250章 幸虧有雙保險第159章 想怎麼看,就怎麼看?第191章 好像只能擠一擠了第37章 烤肉第410章 六度分割理論?第357章 再給你一次機會第178章 “概率圖”上的天窗第179章 馬爾可夫隨機場第130章 大佬和小蘿莉第121章 還有誰會對自己這麼好?第415章 滿分入選國家隊第351章 送她點什麼?第393章 男人不能沒有事業第36章 家宴第43章 寫字機器人第333章 不怕教壞了乖女兒?第368章 能幹的小秘書?第105章 寶藏男孩第277章 學之力,9段!第368章 能幹的小秘書?第203章 誰支持、誰反對?第332章 大功告成,樂不思蜀第271章 破壞永遠比建設更容易第268章 最終版本第373章 肉體永生,還是機械飛昇?第192章 許文強和馮程程第257章 NOIP中最難的題型第256章 擴展歐幾里得算法,以及增強線段樹第318章 飛機點餐攻略第16章 倔強的夏雨菲第123章 BT小鳥第342章 蛇皮走位,初現鋒芒第288章 合理避稅第424章 又一個冠軍到手第415章 滿分入選國家隊第371章 莫非換了個女朋友?第419章 媽可能是親媽,爹……第140章 虛驚第19章 一切爲了押韻第130章 大佬和小蘿莉第202章 輸得明明白白第340章 實力還是運氣?第189章 查房第99章 老江很忙第268章 最終版本第310章 唯一的破綻第209章 校服就是最正式的裝扮第306章 就剩這麼幾個了第411章 不可不防,防不勝防第135章 巧合?考驗?第383章 全自動刷分第101章 偷換概念第279章 一舉成名天下知第25章 我想參加NOIP第237章 大魚和小魚第52章 “感知機”的初次實戰第307章 沒有證據可不行第299章 膽大妄爲,實力恐怖第79章 李東的Show time第38章 賣歌第246章 Vigenère密碼和國王遊戲第218章 爲人實在,夠給面子第93章 《泡沫》第83章 髮卡第285章 “彈性碰撞”第126章 八樓的直升飛機第251章 特效藥第174章 良心工作室
主站蜘蛛池模板: 金昌市| 古蔺县| 巴彦淖尔市| 颍上县| 凤台县| 通化县| 高雄市| 美姑县| 武平县| 浮山县| 共和县| 宜阳县| 阜康市| 华安县| 韩城市| 胶州市| 上栗县| 屯留县| 上栗县| 新沂市| 滦南县| 许昌市| 措美县| 平谷区| 台东市| 环江| 嘉义县| 永靖县| 安宁市| 长岛县| 搜索| 台北县| 芜湖县| 时尚| 邵武市| 和田县| 雷州市| 育儿| 中西区| 香格里拉县| 黔南|