八月解題手記一

2021-04-19 18:07:50 字數 4907 閱讀 3028

八月解題日誌一

augest_1

poj2117 electricity

關節點性質

augest_1

poj1644 to bet or not to bet

dp/遞推

這種算概率的遞推不是第一次見到了

augest_2

poj2449 remmarguts' date

woj 1085 回家的路

第k短路(有環)

a*演算法

很經典的解法,dijstra求最短路作為啟發函式

期待弄懂第k簡單最短路!

augest_3

poj2793 cactus

圖論

涉及環的判定,樹的簡單計數(乘法原理)等問題

先保證每一條邊最多屬於乙個環——dfs和對邊hash解決問題

dfs真是個奇妙的東東

augest_3

poj1769 minimizing maximizer

線段樹+dp

用線段樹來得到一條線段該取的最優值

augest_4

poj3487 the stable marriage problem

穩定匹配問題/穩定婚姻問題

很現實的方法——男方鍥而不捨地去追求女孩,直到最後娶到乙個對他不變心的女孩(乙個女孩遇到乙個更適合的女孩後就立刻變心轉投新人),這樣迴圈直到所有人滿意為止

我只能說這個好現不現實……

the stable marriage problem

function stablematching

} augest_4

poj2690 yahtzee

集合dp

難點在於狀態選擇。

選擇對規則做集合dp比較好——這樣就現選前6個規則運用於哪幾輪,到6輪的時候直接判斷

augest_4

poj2166 heapsort

構造法(堆的性質)

由乙個元素的堆向後推,每次都是讓1從頂到最下面一層就可以了

augest_5

poj2580 the door/key problem

字串處理+不斷迭代bfs

輸入處理才是麻煩的地方,很容易錯

迭代bfs不斷嘗試得到更多的鑰匙和開更多的門——如果不能更多了就沒轍只能報告no了

augest_5

poj1742 coins

dp 有數量限制的揹包問題

xbb問的題目,由於是loutiancheng出的題目,我好好想了會……

不過事實證明3000+個ac的題目是簡單的,跟無限數量的物品的揹包問題有點像(每次記得限制下數量——另開乙個陣列記錄),不過這種做法效率ms不是很好,那些人怎麼搞的?

augest_6

poj2922 honeymoon hike

二分+bfs

很暴力的二分(先分200,再分200,範圍還是很小的)

augest_6

poj3343 against mammoths

二分+二分圖匹配+求不等式

求不等式得到能成功攻擊的時間長度

二分後做bfs

augest_6

poj1751 highways

mst+一點變化

對於已經存在的邊,把他們的權值取0或負數

augest_6

poj1652 holey cloth

分層bfs

很經典的思想——對於每一塊布都分離出來做bfs求洞的個數和大小

augest_6

poj1475 pushing boxes

bfs套bfs

很經典的題目

難的地方在於保證推箱子次數一樣的情況下再保證人走的路長度最小——把推箱子次數一樣的全部搜完再退出!

不過狀態轉移的記錄才是麻煩的地方——我用char陣列存的人的走法,結果輸出好多空白東西,跟官方資料在text下看不出區別——最後只能用兩個*去卡乙個輸出,得到好多空白!

woj1341 friends

zoj1492 maximum clique

最大團

目前硬搜過的

借用了別人的用位來表示是否選擇,不過long long錯了搞不定,最後用兩個int寫高精度

目前程式效率和簡潔度都不行

待進一步研究

augest_8

poj3463 sightseeing

dijstra+遞推

oldmaner推薦的很經典的題目

dijstra求最短路

然後就倒推符合長度的路徑條數——由於每條邊長度必定大於一,所以遞推不會出現問題

augest_9

poj1394 railroad

bfs

做兩遍bfs,第一遍求最早到達時間,第二遍把圖倒過來求最遲出發時間

augest_10

poj1364 king

差分約束

原來對差分約束死套公式,昨天差不多忘記了

套路型建圖後bellman-ford

augest_10

poj3678 katu puzzle

2-sat

第一次看到這麼一種題……

然後我yy了一種不斷假設的演算法——事實證明是能夠ac的,麻煩而已

2-sat有兩種解法:一種就是假設後驗證調整,還有就是轉化為求圖的強連通分量

圖模型的難點在於模型轉化,這個題把and、or、xor都齊了 經典

augest_11

poj1860 currency exchange

bellman——ford

很直接的模型,不過精度太搞人了——eps=1e-8終於過了

augest_11

poj2749 building roads

二分+2-sat

模型建立比較麻煩

出題人的報告:

building roads

標程用的演算法是二分查詢,給定乙個答案後,用2-sat判斷是否可行。下面主要說一下2-sat問題的建模。用布林變數xi表示第i個牛欄連到第乙個中轉站,即xi為真時連到第乙個,為假時連到第二個。那麼~xi表示第i個牛欄連到第二個中轉站,~表示布林取反。 檢查每乙個約束條件,構造2-sat的和取正規化。

1)i和j不連到同乙個中轉站,就增加和取正規化(xi + xj)(~xi + ~xj)。

2)i和j必須連到同乙個中轉站,就增加和取正規化(xi + ~xj)(~xi + xj)。

設現在二分的答案是s。那麼檢查每一對牛欄i和j(假設d1i,d1j表示i和j到第乙個中轉站的距離,d2i,d2j表示i和j到第二個中轉站的距離,dd表示兩個中轉站之間的距離)。如果

3)d1i + d1j 〉s,就增加和取正規化(~xi + ~xj)

4)d2i + d2j 〉s,就增加和取正規化(xi + xj)

5)d1i + d2j + dd 〉s,就增加和取正規化(~xi + xj)

6)d2i + d1j + dd 〉s,就增加和取正規化(xi + ~xj)

剩下的只是用2-sat的現成演算法去判斷是否有解。

augest_11

poj2723 get luffy out

2-sat

比較直接的模型——hash一下一對鑰匙(當作乙個變數的正反)就可以了

然後由於求最大的可能,二分一下再加如門上的限制, 然後2-sat就好了

augest_11

poj2162 document indexing

模擬+trie

按規則模擬(這裡讓我從比賽一直錯到晚上,忘記考慮最後一行後面沒有行了——後來直接在後面加兩空行)

建立trie:超描每個單詞建立trie樹,每個節點附帶單詞出現的page資訊

最後遍歷trie樹輸出

augest_13

poj3057 evacuation

bfs+二分+二分圖匹配

bfs求每個人到達任意門的最短路徑長度

二分所有人能出來的時間t

將一扇門拆成t個點(拆點的原理:一扇門乙個時間只能出去乙個人),作人於帶時間限制的門間的匹配

我re了好幾次

augest_16

poj2679 adventurous driving

差分約束+dfs(種子填充?)

這個題的題意就很難懂!其實就是對於每個頂點,只有那些與起相連邊中花費最小的邊有效,然後求從起點到終點的最小花費路徑,並得出最小花費路徑中的最小路徑長度

1、判斷起點到終點是否存在路徑(dfs)

2、bellman-ford求最小花費是否存在(判斷負環)並求最短路徑

第二步比較trick,我是下了資料才發現我為什麼tle——負環實在太小,很難傳遞到源點

所以鬆弛n次後發現負環直接dfs檢驗是否可以傳遞到源點

augest_18

poj3169 layout

差分約束

對hate和like分別列方程

augest_18

advertisement

貪心或差分約束

貪心的證明麻煩,不知道

差分約束的做法:

dis[i-1] - dis[i] <= 0

dis[i] - dis[i-1] <= 1

dis[a-1] - dis[b] <= min(b-a+1, k)

最後取dis[i] – dis[i-1] == 1的i

augest_18

poj2501 escape from enemy territory

bfs+二分+bfs

用bfs標記每一格的無危險值;

再二分危險值後bfs求最短路

第一次居然是標記危險值的時候做10000次bfs,由於有1000*1000格,必然tle。

二分的思想還是很重要……

逝去的八月

八月,失去了我乙個摯愛的親人 外婆。外婆走了有乙個月了,希望外婆在那邊一切都好。這個月對於老婆來說也是難熬的乙個月,岳父做了個手術,病情也挺讓大家擔心的,手術很順利,希望他早日 也許是這些事情讓我感到了身體的重要,從本月8號 全域性健身日 起,開始跑步,快跑了乙個月了,繼續堅持,讓跑步成為一種習慣,...

八月,開始之路

題外話,又是這種月結式的博文,真沒辦法。先吼一聲,我終於也算是踏入職場的人了。好吧,這話後面滿滿的都是辛酸,尤其還是初來乍到乙個新城市,真的是各種支出和坑。不管怎樣,積極面對,暫時而已了。八月中旬入職,緊接著就是 天的封閉培訓。說實話,這些日子的美好,我已經開始懷念了。從全國各地飛來的各路同學,短短...

八月英語 近朱者赤

強烈推薦乙個大神的人工智慧的教程 個人 這個月接觸了新的學習材料,小豬佩琪,這個材料看了三部了,雖然是動畫,但是每一集都有新的東西,有的句子比較簡單,很容易引起共鳴,有的詞語之前是沒有接觸過的,但是根據畫面也就可以猜出是什麼意思。雖然佩琪的弟弟喬治只會說dinosaur,不過每次說都好好聽呀!還能體...