總結 模擬賽2022 1 19

2022-09-18 23:48:16 字數 1974 閱讀 1896

30min看完題目,一開始認為t1、t3、t4都是最小生成樹。後來慢慢看題,發現都不是。

t1寫了乙個類似於dij的演算法。流程如下:

找乙個對當前貢獻最大的點(貢獻最大指的是:能看都最多現在沒有看到的點);

標記找到的點以及它可以看到的點(注意,兩種標記是不一樣的。第一種表示以後再也選不了;第二種表示以看到的點);

ans++;

如果已經滿足要求,輸出ans。

大概30min寫完。

看到t2第一感覺就是貪心,但想了大概10min考慮貪心是否是對的以及一些細節。後來寫雙向鍊錶的時候寫掛了,果斷換題。主要是吸取了csp的經驗。

才發現t3和t4都不會,寫了兩個騙分程式,去改t2。

t2終於改出來了,一直呆到比賽結束。

ohohohohoh!!!我t2ac了!!!但正確性我不會證啊???

t4的資料好水啊,全部加起來,都能拿25分。(有些對不起那些好好打樹形dp只拿了12.5分的同學)。

t3可以用暴力+貪心???好水的資料。

下次可以壓縮一下看題時間。最好在20min以內。

不要把一道題的idea照搬到其他題上,比如今天開題的時候認為3道是最小生成樹。想題的時候盡量換一種心態想。

相信自己的感覺,其實t2沒必要花10min思考對還是錯,應該衝動一點。

多學習基礎演算法,比如今天t1差不多是模板的樹形dp居然完全不會。

資料太水了。

相信自己的想法,自信一點。

相信暴力可以ac或拿到較高的分數。

賽時做法:寫了乙個類似於dij的鬼東西,具體做法如上。

賽後做法:其實就是樹形dp的板。但是,由於有 \(n\) 條邊,所以,我們需要刪掉一條邊。在尋找那條邊的過程中,使用dfs,記錄乙個節點的父親,然後判斷:如果找到了乙個點,重複了兩次,且不是當前節點的父親,則當前節點與找到的節點就是我們要刪的邊。把這兩個點記作: \(r_1,r_2\)。如下圖。

然後分別以 \(r_1,r_2\) 作為根,跑一邊樹形dp。設 \(f_,f_\),分別表示:以 \(r_1\) 為根的情況下,\(x\) 節點不選與選的最小答案。設 \(g_,g_\),分別表示:以 \(r_2\) 為根的情況下,\(x\) 節點不選與選的最小答案。轉移方程如下:

\[\begin f_=\sum f_,1} \\ f_=\sum\min\,1},f_,0}\} \\ g_=\sum g_,1} \\ g_=\sum \min\,1},g_,0}\} \end

\]初始化:f[i][0]=g[i][0]=1

以 \(f\) 為例,解釋一下:由於題目的特殊性,如果父親不選則兒子一定都要選;但如果父親選的話,兒子可選可不選,所以就從這兩者選個最小值。

貪心+雙向鍊錶,但是不會正確性的證明;區間dp比較嚴謹而且較好理解。

下面給出一點不算好的貪心證明。

以上圖為例,先給給它從小到大排個序,然後排完序的順序就是列舉的順序。假如1是x,5是y,3是z。那麼想要找到比\(\lvert y-x \rvert,\lvert z-x\rvert\) 更優的方案,則必須有乙個節點,要乾掉 \(y,z\) 的其中乙個。通過題目可知,如果有其他點要幹點 \(y,z\) ,則這個點比 \(y,z\) 還要大,那麼方案會更差。所以,可以用貪心。

區間dp的做法是:將陣列複製一遍,然後設 \(f_\) 為l到r的最小答案。那麼轉移方程顯而易見:f[l][r]=min(f[l][r],f[l][k+1]+f[k+1][r]+abs(max(i,k)-max(k+1,r))

水過,但要打網路流,設乙個超級源點s和超級匯點t,將價值為1的全部點連向s,價值為-1的連向t,這兩種邊流量都是1。原圖中所有邊流量為inf。然後就是最大流模板了。

t4 emma不會。

20151006模擬賽總結

今天上午去一中,又考了個模擬賽。這次的題有點考思維。我感覺這個第一題難度稍微大了點。一般noip第一題要麼是簡單的模擬,要麼是裸的簡單演算法,這次的第一題要自己構造演算法,並且還是列舉和貪心套在一起。我開始想的是列舉 揹包,複雜度為n 3,但是資料範圍沒給出三次方的分。於是我就覺得不靠譜。然後發現列...

20151031模擬賽總結

今天去一中,考了個模擬賽,真是坑。本來在八中食堂愉快的享受我的早飯 週末早上的番茄雞蛋燙飯 韭菜肉餅簡直爽!然後geng4512就跑過來說要去一中考試,然後兩口喝完燙飯就和他一起狂跑過去了。這次第一題組合數取模,模的不是質數。想了好大半天,沒什麼想法,然後看了下後面的題,又回來做這道題,想起了階乘分...

20160521模擬賽總結

20160521模擬賽是程式設計實習課程安排的第一次模擬賽 比賽鏈結 備註 這個系列模擬賽屬於程式設計實習練習賽,題目有很大一部分事先練習過,做這些題目為了練習碼 熟練度,也為了進行模擬考試練習的機會,所以這個系列模擬賽我每一次都參加,作為練習 題目清單見下 已解決 01 浮點數求高精度冪 已解決 ...