2015藍橋杯決賽

2021-07-03 04:38:44 字數 2626 閱讀 2663

五月二十八號,坐上了開往北京的火車。第一次到北京參加全國性的比賽,第六屆藍橋杯決賽,心裡面還是很興奮的,同時也有一點點緊張,還是希望自己能拿乙個比較好的成績。提前一天到,大家看了看考場,比賽地點在北大計算中心,30號下午一點開始了正式的比賽,比賽時間四個小時。

比賽題目型別和初賽差不多,有結果填空,**填空和程式設計三種型別。但是題量少很多,一共只有六道,分別是兩道結果填空,一道**填空,三道程式設計大題。我參加的是c++本科a組,比賽結束了,憑印象還是先把題目總結一下。

a.結果填空

題目大意:有乙個2×5的矩陣,將1~10十個數填到裡面,保證滿足下面條件:右邊的數一定比左邊的大,上面的數一定比下面的大。

題解:這是一道簡單的深搜,注意新增visit陣列標記,每個數字只能使用一次。可以使用輸出中間結果來判斷演算法正確性。

b.結果填空

題目大意:類似於九宮格,現在有乙個4×4的矩陣,要求將1~16填入,滿足每行每列以及兩個對角線的和都是相等的。

題解:

這也是一道深搜,但是不減枝的話就跑得太慢了。我們可以在每行排完之後就進行一次判斷是否滿足和等於34,當排完後在最後判斷每一列和對角線是否滿足。按照簡單的減枝,還是跑了好一會兒才跑出來。但是在這種題上面不能浪費太多時間,只要能得出答案。

c.**填空

題目大意:程式的功能是將乙個二叉樹在控制台列印。需要填寫的只有一句,但是裡面的關係還是比較複雜的,看了一會兒之後沒有思路,就按照程式的大概意思隨手試了幾個變數,最後試出來了。試的過程也不是亂試,還是要大概明白裡面關係的。

d.程式設計大題

題目大意:有乙個矩陣,裡面有起點a和終點b,中間都是『+』或『-』,一輛坦克從a走到b,但是要求只能乙個『+』乙個『-』這樣交叉的行走,問行走到終點的最短步數。

題解:

求最短步數,最先想到的就是廣搜,在遞迴的時候加乙個判斷來控制行走方式就好了。

e.程式設計答題

題目大意:其實比賽的時候並沒有看懂題目,關鍵是樣例沒解發布來,這道題直接跳了。大概意思是說有乙個字串,將這個字串分解,左邊的(奇數長回文串)數目與右邊的非(奇數長回文串)數目和為得分,求最大得分。這裡(奇數長回文串)是乙個整體概念,右邊只要滿足不是(奇數長回文串)就可以得分。

題解:其實並不會。。。

f.程式設計大題

題目大意:有兩種積木。用無限個這些積木問能拼成n*m的矩形的形狀有多少種拼法。

題解:這道題自己做的時候也只是在嘗試,因為不確定能過多少,但是感覺大概方向是對的。這道題的資料對於100%,n(1~100000000000)很大,但是m(1~6).所以我先畫出了所有寬為1~6的積木的組合情況,這樣我們不用考慮m的情況,僅分割n就可以了,轉換成了一道dp問題。dp的思想是沒錯的,關鍵是遞推關係式,因為最小組合圖形n只會在0~5內變化,所以我的dp轉化關係式:

dp[i][m]+=dp[j][m]*dp[i-j][m] (0 < j < 5);

這是我當時的想法,但是並不是很確定,而且對於100%一定是需要使用滾動陣列的,最後也沒有實現,只是希望能過小資料就好了。

比賽感悟:

關於演算法:

感覺藍橋杯比賽對於演算法的要求還是比較低的,深搜廣搜是考得比較多的,初賽涉及組合數學的一些相關題目,**填空題大都是考回溯,所以規律還是比較好找。程式設計大題最後出dp的可能性會很大,而且是要求用滾動陣列過大資料的,初賽和決賽都是這樣。如果準備的話這些演算法可以重點看一下,關鍵是多練習,找到自己的節奏,比賽的時候一定要冷靜,認真去分析,保證正確率。

關於藍橋杯比賽:

對於普通大學的計算機或非計算機專業的學生來說,藍橋杯還是比較入門的乙個比賽,不像acm競賽難度那麼高,而且藍橋杯偏向於工業與實踐應用比較多。挺適合那些對程式設計感興趣,但是又不搞acm的同學參加。雖然網上對藍橋杯的吐槽會很多,官網的oj做的也實在很差,但是能看到比賽主辦方也在不斷的完善與改進,在摸索中一點點的進步,藍橋杯還算是實實在在是為學生的發展與提高考慮的乙個比賽,並且面試的時候這些獎項也是用得到的。

對於我自己:

國三的結果還是有一點失望的,因為覺得做得不錯,但是因為一些失誤錯失了國二,自己覺得也是乙個教訓。畢竟比自己強的人還有很多,練習的還不夠。藍橋杯給我了這個機會到北大比賽,和清華北大等高校的學生去同場競技的機會,這也讓我能到乙個更大的環境去看到別人有多優秀,以後要努力的地方還有很多,有差距才會有動力,希望能在演算法的道路上走得更遠。

2015 藍橋杯決賽 密文搜尋

福爾摩斯從x星收到乙份資料,全部是小寫字母組成。他的助手提供了另乙份資料 許多長度為8的密碼列表。福爾摩斯發現,這些密碼是被打亂後隱藏在先前那份資料中的。請你編寫乙個程式,從第乙份資料中搜尋可能隱藏密碼的位置。要考慮密碼的所有排列可能性。資料格式 輸入第一行 乙個字串s,全部由小寫字母組成,長度小於...

藍橋杯 2015決賽 穿越雷區(bfs

x星的坦克戰車很奇怪,它必須交替地穿越正能量輻射區和負能量輻射區才能保持正常運轉,否則將報廢。某坦克需要從a區到b區去 a,b區本身是安全區,沒有正能量或負能量特徵 怎樣走才能路徑最短?已知的地圖是乙個方陣,上面用字母標出了a,b區,其它區都標了正號或負號分別表示正負能量輻射區。例如 坦克車只能水平...

藍橋杯 2015決賽 生成回文數

所謂回文數就是左右對稱的數字,比如 585,5885,123321 當然,單個的數字也可以算作是對稱的。小明發現了一種生成回文數的方法 比如,取數字19,把它與自己的翻轉數相加 19 91 110,如果不是回文數,就再進行這個過程 110 011 121 這次是回文數了。200以內的數字中,絕大多數...