中山大学软件工程c语言,2018中山大学软件工程专硕考研经验分享
我本科是本校的軟件工程,17年8月開始準備考研。初試前每天復習9小時,復試前因為忙著畢設沒怎么準備。=============================初試===================================
初試考4門課:政治,英語2,數學2和計算機綜合(408)
政治復習的時間最久,用的是肖秀榮全套。可惜我記憶力不太行,記的內容全在題目材料上。略尷尬,只有60多分
英語2的話我只做了一遍最近10年的英語1真題和兩遍英語2真題,晚上睡覺前和早上起來還用百詞斬記15分鐘單詞,正式考試的時候發揮得也一般,只有80多分。
數學2我用的是張宇1000題,高等數學18講,線性代數9講和最后四套卷。實際考試的時候考了一道擺線積分,最后四套卷里面也有類似的。然而我覺得不太可能考,就沒去深究。不得不說的是張宇最后四套卷難度非常大,比今年號稱歷年最難的數學2還難上幾分。
計算機綜合當然推薦王道論壇的書啦。因為考研的內容和平時上課講的有點不一樣,所以我買了全套。最后也考得還行,有110多分。
因為我是本專業的學生,而且也用了不少時間復習,初試的話感覺還算比較穩,總分350多,排名40多
============================復試=====================================
復試分為筆試,面試和機試。
按重要度來排序的話應該是面試最重要,筆試次之,機試最后。
復試滿分500分,其中筆試100分,面試400分(其中包括英語閱讀翻譯100分)。機試只是作為參考。
============================面試======================================
面試首先抽一段和本專業相關的英語,首先給一點時間閱讀,然后要朗讀和翻譯。我拿到的那段講的是平面圖著色問題。然而因為沒有復習,不知道planar graph就是平面圖....結果就只有70多分。
然后開始面試。問了我幾個問題:
1.講講P和NP的區別
2.planar graph是什么意思(我在翻譯的時候跳過了planar..面試的時候又問我一遍)
3.講幾個離散數學的定理
4.講講warshall定理
5.講幾個著名的定理
6.講講你做過的項目
然而我記憶力比較差,也沒有怎么準備,答得不太好。
==========================筆試=========================================
筆試分為離散數學和c語言設計
離散數學今年考得還算比較簡單,考了40多。
第一題是將命題符號化,并證明這些命題是一致的(即存在一組取值使得這些問題都為真)
第二題是用謂詞和量詞將命題符號化
第三題是集合的運算,畫Venn圖即可
第四題是證明等價關系:已知Q是等價關系,S是等價關系,證明QoS也是等價關系
第五題是用dijkstra算法計算最短路徑
c語言今年難度一般
有10道選擇題,5道判斷題,1道編程題。
選擇題和判斷題考的是c語言的語法。印象中有幾道指針數組的。
編程題考的是文件操作,字符串操作和排序。
我對于比較少見的語法還是不太熟悉,所以只有30多分。
=========================機試=======================================
機試不算分,但會作為面試的參考。
聽說有同學機試成績比較低在面試的時候被導師說了。
建議跨考或者寫程序不熟練的同學去刷點題,可以在leetcode或者在hdu,poj,zoj等等oj上刷。
今年機試題目是中文的,難度一般。
在考試之前有三套模擬題,共23題,
正式考試是10題,3小時內完成。
難題作用其實不大,畢竟機試第一的那個人面試才250多分,加上英語就330多。
在最后我會分享這33題里最難的5題,難度從易到難排序。實際作用不太大,有興趣同學的可以看看。
由于篇幅問題,代碼分享于百度網盤。如有錯誤,歡迎指正。
https://pan.baidu.com/s/1PIPutqUyTGS7_aZh3MBE1w
提取碼:3tbe
祝大家順利考上喜歡的學校~
=======================機試題目分享====================================
1.k-馬問題(模擬考試)
題意:在一個m*n的棋盤上有一些馬,馬跳一步可以往水平方向跳2格,往豎直方向跳1格,或者往水平方向跳1格,往豎直方向跳2格。
k-馬一次最多可以跳k步。問這些馬能否跳到同一格內?若可以,則輸出最少需要的次數,若不可以,則輸出-1
輸入格式
第一行為一個數t,代表有t組測試用例
每組數據的第一行為兩個數m,n,代表棋盤的行數和列數
以下m行每行有n個字符(0
字符‘.’表示空棋盤,數字k表示該格子上有一個k-馬,即該馬一次最多可以跳k步。(0
輸出格式
輸出t個數,第i個數代表第i個測試用例的答案
樣例輸入
3
3 3
1.1
...
...
3 3
1.2
...
...
2 3
9..
.8.
樣例輸出
2
1
-1
題目分析:
題目的意思就是求從多個起點出發走到終點最少需要的次數。由于從m個起點出發要重復多次計算,所以我們枚舉所有馬走到的終點,將其作為起點。
然后從起點出發,廣度優先搜索,計算到走到每個馬位置的步數,轉換為次數以后加起來即可。
復雜度O(m^2n^2)注意若有一個馬無法到達,則輸出-1
2.旅游問題(正式考試)
題意:有n個城市,每兩個城市之間都有鐵路和航班。坐飛機的時間是坐鐵路的一半。以鄰接矩陣的形式給出城市間坐鐵路所需的時間(保證反自反和對稱即aii=0,aij=aji),
求:在最多坐k次飛機的情況下,從城市1到城市2最少需要花費的時間。
輸入格式:
第一行一個數t,代表測試用例個數
接下來對于每個測試用例,
第一行兩個數n(n<100)和k(k<50),代表城市個數和最多坐的飛機次數
接下來n行每行n個數。是這n個城市的鄰接矩陣。
輸出格式:
輸出t個小數,第i個數代表第i個測試用例的答案,輸出保留一位小數。
樣例輸入:
3
3 0
0 3 1
3 0 1
1 1 0
3 1
0 3 1
3 0 1
1 1 0
3 2
0 3 1
3 0 1
1 1 0
樣例輸出
2.0
1.5
1.0
題目分析:
題目大意是求兩點間最短距離。這里有個轉彎的地方就是可以坐飛機。將一個點拆成k+1個點。分別代表在這個城市已經坐了0到k次飛機。
然后就可以用dijkstra算法或者spfa等等求解了。
3.最大集(模擬考試)
題意:給定n個數,在這n個數里任意取出k個數,使得這k個數兩兩互質。求k的最大值
輸入格式:
第一行一個整數t,代表有t個測試用例
對于每個測試用例:
第一行一個整數n,代表有n(n<50)個數。
第二行n個正整數(每個數在100以內)。
輸出格式:
輸出t行整數,第i行表示第i個用例的答案
樣例輸入:
2
3
6 10 15
5
1 2 9 12 97
樣例輸出
1
4
題目分析
乍看之下是求最大獨立集。這是個NP問題,網上可以查到較好的方法求解。但是通過分析輸入規模,并不需要用到
最大獨立集。由于每個數在100以內。所以與50以上的質數不互質的數只會是這個數本身。所以只需要對50以下的
質數進行分析。由于50以內的質數只有14個,所以我們可以用狀態壓縮動態規劃。將每個數分解質因數,然后進行
狀態壓縮。如果某個數含有第i個質因子,則將它的第13-i位置為1。如:整數140=2^2*5*7,2是第一個質數,5是
第三個質數,7是第四個質數則10可以表示為二進制1101,即13。然后進行dp:
dp[j|a] = max(dp[j|a], dp[i - 1][j] + 1)(j&a== 0)
4.數字(正式考試)
題意:有一個很喜歡數字4和7。他喜歡用數字4和7組成很多新的數,如:44,47,774等等。他將這些數稱為B數
(忘了叫啥了)給定一個只含數字和問號的字符串,問號可以代表'0','1',...,'9',問這個數能不能表示成兩個B數
相加。如:1?1可以是121,而121=44+77,可以表示成這兩個B數相加。若不可以,則輸出-1,若可以,則輸
出最小的數。如:1?1可以是151=74+77,但121<151,所以應該輸出121.
輸入格式:
第一行一個整數t,代表有t個測試用例
接下來t行每行一個只由數字和問號組成的字符串。
輸出格式:
輸出t行整數,第i行表示第i個用例的答案。
樣例輸入:
5
1?1
2??
1?
???????
1?2?2?
樣例輸出:
121
-1
14
1188888
122221
題目分析:
這道題目有點復雜,細節比較多。仔細分析可以發現每一位只能影響它的前一位和后一位。
記n為字符串的長度,則分兩種情況:
1.兩個加數都是n-1位。這樣的話第一位一定是1
此時可以從最后一位開始檢查到第三位,并記錄進位情況,遇到問號,則貪心取值
(如必須進位則取1+后一位的進位,否則取8+后一位的進位)
此時又分四種情況:
(I)上一位是2,9,5,說明這一位要進位
(II)上一位是1,8,4,說明這一位不能進位
(III)上一位是?,那這一位可以進位也可以不進位。
(IV)其它,則不合法
第二位的取值只能為1+后一位的進位或4+后一位的進位。
2.有一個或者兩個加數是n位
因為兩個數可能位數不一樣,所以可以枚舉較小數的位數。
從最后一位開始檢查到第二位,具體步驟和1中一樣,但是注意當檢查過了較小數的位數時,
數字會不一樣了,而且也不會再出現進位了。
如最高位是問號,則其取值看次高位是否可以進位
若必須進位或可以進位,則最高位取1
否則取4。
細節請看代碼。
5.馬周游問題(第一天測試題)
據說這題是上一屆考試最難的一題。題意描述得不是太清楚,但大概做法能猜到,在網上也能搜到
http://www.xuebuyuan.com/2054151.html
總結
以上是生活随笔為你收集整理的中山大学软件工程c语言,2018中山大学软件工程专硕考研经验分享的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数学建模四大模型
- 下一篇: Java对象的内存结构