2018寒假作業 3(電梯版本二)

2022-03-28 23:29:04 字數 2115 閱讀 6843

github倉庫

提交日誌截圖

檔案讀寫

檔案讀寫之前接觸過一些,而這次顯然與之前不同,c++的檔案讀寫開啟方式便於c有所差別,而所用的指令也不同。至於如何學習,筆者則是通過了網上查閱了一些部落格來學習這項東西(主要是c++檔案讀寫詳解),可以說這篇部落格確實對得起」詳解「,筆者從中學習了很多,也改變了許多以往舊的觀念。之前筆者所知的檔案讀寫指令很單一(例如pascal的assign、close,c的freopen),但並不知道c++與c的讀寫方式不同,更不用說c++的讀寫方式在筆者看來雖然比較繁複,但是更為嚴謹,因為它規定的引數、方式都給人一種相比c來說更加謹慎的感覺。

在筆者看來檔案讀寫的學習很有必要,因為檔案是獲取資料的一種巧妙方式,有時候不僅可以開啟需要的,也可以去看看其他的

編碼規範、注釋、git commit資訊

對於編碼規範和注釋,筆者並沒有學習多少,因為本來就有注意編碼規範,比如一些的變數的命名,也自己會寫一些注釋,但是去學習了以後還是有了不少觀念更新,以前注釋可以說寫得比較隨性,可能就給自己看看而已,沒想到會有別人來閱讀。而git commit資訊的學習,筆者發現,原來commit資訊如此重要,竟然包括了如此多的細節和注意事項(第一次學習的時候並沒有注意那麼多的細節,例如筆者第一次學習只注意到了commit相當於提交備註,需要有header、body、footer,卻沒有仔細去了解下一層的東西,不知道header需要type、subject、scope,以及這些再分解的細節如fix、feat、body需要第一人稱描述等等),而至於注意事項,筆者認為首先commit一定要簡潔,筆者覺得乙個規範的簡潔的commit資訊,可以減少不少的工作量,就相對於大的提交量和修改次數而言;其次commit既要符合既定規範,也要比較嚴謹認真,不容得些許玩笑(當然筆者覺得吐槽可以出現,但是最後肯定是要修改的),畢竟commit需要被閱讀,筆者認為commit的表達也一定程度上體現了提交者的素養。

編碼、debug

這次編碼並沒有花費太多的時間(相比於上次),因為思考得比較詳細,所以寫起來也比較快,比較痛苦的就是debug,想的是這樣,跑出來是那樣,一直在糾錯,很是頭大,好在思路比較清晰,糾錯起來問題也不是很大,只是次數比較多導致效率並不是很高。

lines

bugs

time

44510+

10h設計樣例

這次樣例的設計還是沿用了上次的風格,即特殊資料占多數,普通資料較少,筆者認為這樣才能說比較客觀的反應**的可行性,因為普通情況處理肯定差別不大,不同就在於對於較為特殊的資料的處理方式。

特別地,筆者在第二次作業中說到要解決的問題,筆者都進行了解決:

1、當某一乘客發出請求後,對於順路的乘客,筆者先將其接入電梯(如果其所在樓層也在電梯當前執行軌跡上的話),之後判斷在電梯運動過程中,會不會經過順路乘客的目的地,經過便停靠,不經過便繼續移動到先前準備接送的樓層、

2、筆者此次的電梯採用先接後送,邊接邊送的思路,來保證能得到較小的等待時間總和,接乘客時採用佇列,送乘客是採用棧(對於有順路乘客的情況更優,但這在普通情況下會犧牲掉一些乘客的時間,即後文所述),筆者考慮如無順路乘客便犧牲掉一部分乘客的時間,優先接送棧頂(即最後進入電梯)的乘客。

3、筆者對於電梯的執行方向加入了dir來表示,雖然並沒有什麼比較大的改觀,筆者目前也沒有什麼思路來更好地運用dir。

以下是樣例及輸出截圖

以下簡述所構造樣例:

樣例一:多名乘客在同一樓層發出請求,請求時間連續且恰為前一名乘客進入電梯後的時間

樣例二:乘客請求樓層連續,目的樓層一致,可被順路捎達

樣例三:乘客已經到達目的樓層卻不知情

樣例四:普通情況,正常需求的混雜(可能有點特別在時間比較集中和連續)

樣例五:普通請求的情況下,有一大時間請求,其請求足以覆蓋至其他乘客到達目的地以及電梯到達其出發樓層

2018寒假作業 總結

2018寒假學習總結今年寒假剛開始前,本打算好好的學習伺服器後端建設以及趁著寒假的空餘時間配合acm隊的寒假比賽學習演算法,卻在開始後不久就收到了班主任和助教學長學姐的關懷,送來了c 寒假學習 使得原本雙開就比較繁忙的寒假生活變得更加的忙碌。不過寒假雖然忙,但是卻沒有初高中趕寒假作業那般枯燥,有趣的...

2018寒假作業1

本題要求你寫個程式把給定的符號列印成沙漏的形狀。例如給定17個 要求按下列格式列印 所謂 沙漏形狀 是指每行輸出奇數個符號 各行符號中心對齊 相鄰兩行符號數差2 符號數先從大到小順序遞減到1,再從小到大順序遞增 首尾符號數相等。給定任意n個符號,不一定能正好組成乙個沙漏。要求列印出的沙漏能用掉盡可能...

寒假作業3

電梯公升降問題 github倉庫位址 問題a思路鏈結 一棟10層的大樓 樓層編號1 10 設有一台無限載重的電梯,初始時電梯停在1層。電梯移動1層的耗時為1,在某一層停靠的耗時為1 時間初始為0 為了使得乘客等待的時間 電梯在目的層的停靠時刻 乘客發出請求時刻 總和最小,請你編寫乙個程式來進行電梯排...