第一次正式現場賽總結

2021-05-22 10:06:29 字數 4184 閱讀 6311

這是我第一次正式現場組隊賽,直接進入正題。

週六的熱身賽,第一道題是一道最大子段和,孔很快就

a掉了那道題目。第二道是素數篩選的變異,我們的思路都已經到了題解的那個點上,可是當時我越想越複雜,導致我們寫的**越來越長,最後沒有過那道題。總體上,我們熱身賽表現的不是很好,不過那個晚上我們重新開會商量了第二天比賽的注意事項和對情緒的調整,那時候也定下了我們的目標和具體的分工,所以第二天的正式賽我們的情緒調整得很好。

第二天到達圖書館,正式賽很快開始了。所幸我們

3人都十分淡定,這次的心態調整得比較好,很快進入比賽的狀態中去。

拿到比賽題目,開始讀題。很快就看出第十一道題是一道很普通的列印,馬上符開始敲這道題,他很快

a掉了這道題目,如此順利地

a掉第一道題讓我們更加有把握。接著孔看出了j道題

complex square

是以前的原題,是一道有一些陷阱的模擬,孔很有自信馬上敲完了**,也很順利a掉了

j題,前兩題的順利讓我們輕鬆不少。接著我們都看出了a題

cut cake

也是一道原題,不過大家都沒有什麼印象了,我看了下題目,一道幾何題,公式很好推,但是解不出來,於是我認為這是道二分逼近求解,於是我開始敲這道題,他們開始讀其他題目。我在紙上隨便畫了個圓就推出了這個公式,但是當時為使用弧度還是角度糾結了一下,接著決定使用弧度,將公式化簡。很快敲完**,但是一直過不去。最後拉來孔,發現有個錯誤,就是不應該用(

1/2)而是(

1.0/2

),這是我的疏忽之處。改完這點,我們很順利

a掉了這道題。當時

a掉這道題還沒到

11點半,比賽是

10點開始的,我們當時名次好像是在

20左右。但是下面

3個半小時,我們就真正看出了差距。

首先看當時全場很多隊伍都公升起了紫球,也就是e題

cinema

。當時符已經讀完題,他開始敲**,我重新讀

e題,孔繼續讀其他題,他讀的是是

i題(當時全場很多隊也生起了這個銀球)。

e題的資料量是n《

=10000

,當然不可能是搜尋,我當時也排除了

dp,很肯定的認為這是貪心。再看

n個點的圖只有

n-1條邊形成最小樹,這是乙個稀疏圖。接著看符,他好像一直過不了一組資料。我重新讀題,符的**是用鄰接矩陣寫的,他也認為是貪心,後來經過討論,發現他的演算法在於沒有進行取點後的更新。我們當時的演算法是每次選取鄰點最多的點,再進行更新。而這時候問題就出來了,怎麼進行更新和怎麼進行每次找最優點,因為n到了

10的四次方,我們如果處理不好以上兩項就會造成超時,於是我決定用鄰接表寫,並且我不知道如果開

10的四次乘以

10的四次的整數矩陣會不會記憶體不足。接著我就想構造乙個結構體,就是建

n個鍊錶,每個表記錄每個點和他相鄰的點,接著表頭有個值

num記錄鄰邊數,每次選

num最大的,接著遍歷這個表,把存在於這個表中的點的

num-1.

這樣就很快的完成了刪除操作,但是對於每次選最優點依然很棘手。當時我想到了用堆去寫它(這樣就可以快速選取最優點),接著想

stl,最後實在沒有想出用哪個庫可以寫出來。於是準備用指標寫,可是實在寫的很亂,最後我只能作罷。比賽結束後和秦的討論才知道,貪心是不行的,例如

1-2-3

-4-5-6

,用貪心寫得到

3,而正解是

2。後來聽老師說是樹狀

dp,我也只能苦笑,實在演算法掌握得太少了。另外對

stl的掌握要加強和不要輕易用貪心,總有些題目表現看上去是貪心,其實卻最有可能不是貪心。。。

當時決定放棄這道題已經是

1點了,我們的名次已經掉到了

30左右,孔上機開始寫

i道題。我們開始重新讀題,資料量是

n=300

,我們經過討論,認為這是搜尋。孔很快敲完那道題目的**,很快過了例題給的資料,但是有一組資料一直過不去:1,

3,8,

12,13,

23,33.我重新看了他的

dfs,最後我們經過很糾結的乙個過程,我自己總結他的

dfs裡有

2個主要漏洞:

1.誤將層數作為物件的序號,即把k當作

i;2.如果找不到可以配對的數,那麼就需要重新建立一根柱子,但是這個柱子上的第乙個數不應該是從上乙個物件後面的數開始找,而應該是從頭到尾的第乙個沒有被用到的那個數開始找。比如上面這組資料,如果用原來的

dfs,得到的最終答案是,首先會用到第乙個柱子,上面的數字為1,

3,13;第二根柱子

12;第三根柱子

23;第四根柱子

33。得到需要

4根柱子的答案。也就是直接不要

8了。而經過修改得到的是1,

3,33;

8;12,

13,23;也就是需要

3根柱子的答案。經過修改的

dfs過掉了另外一些資料後,我們準備提交看看,接著極其自然的,我們

tle。。。。。。接著我們還是認為這是搜尋,並且我當時認為肯定能剪枝的,接著我就對那個

dfs開始一陣剪枝,接著我們還是

tle。。。。。。當時我可能真的有些要著急想過了這個題,並且我是隊長,這是我那場比賽做的不好的地方之一。後來據說還是樹形

dp。。。。。,我們在樹形

dp上載了兩個跟頭。

我們就這麼糾結了

3個半小時,直到比賽結束。最後名次是我們

36,他們

37,應該是二等獎中下部分的樣子,因為我們不參與排名,更因為我們並不是因為這個獎來到這裡。我們深深知道

3道題和

4道題的區別,我們讀完題連他的真正演算法都不知道,都從來沒有敲過那個型別的演算法,因為我們知道的演算法真的太少了。認真學習演算法,平時少用模板,明曉與強隊的差距,還有學會

acm是團隊的戰鬥,這就是這次比賽最大的收穫。中山,華農的

final

隊的確很強,但是我們不應該用我們是大一來逃避掉我們實力和他們存在極大差距這一事實,

acm的賽場沒有大一大二之分。

在走出賽場的時候,在看著

final

隊高舉獎盃的時候,在火車上的時候,我默默告訴自己

: 把心沉到谷底,踏踏實實得訓練,總有一天,我們會有實力和他們一決雌雄。

第一次正式賽小記

拿銅了?真的嗎?真的嗎?好吧,先說說比賽的過程吧,安神先問我座標變換怎麼寫,我果斷扔出了乙個渣數學公式,結果問題目問了半天,按順序來就好了嗎?本來想讓他寫的,當時再看一道神題,本來以為隨便搞搞就可以,結果神題啊!好在沒在搞這題,我寫就我寫唄,寫完交,wa,瞪了半天都不知道哪兒錯了,就讓惺哥寫b題了,...

第一次網路賽總結

還記得去暑假的時候,從師兄口中得知了acm ipcp 的演算法競賽。從那時起,我便開始憧憬著自己也能參加這個比賽。由於學校沒有通知,自己也沒有主動去了解,感覺自己錯過了很多對比賽的認識和了解。雖然我夢寐以求的參加比賽的機會來了,但是諷刺的是,我發現我居然沒有準備好 雖然只ac了一道簽到題,但是還是有...

第一次正式程式設計

專案組裡待了乙個星期,也沒什麼事幹。專案組裡人都去日本出差了,剩我和小梁兩個人。隨便看看 吧。操,編譯不過去。問小梁,他也不知道,他也新來沒多久,怪不得出差沒帶他。一星期後,大家都回來了。終於有了第乙個任務,續寫老韓寫的xml解析程式。這程式是老韓搭建的架構,小魏寫的 寫得差不多了,我接著他的工作繼...