今天做的還可以,當然,對我來說。唯一的缺點是別人當水題做的D我沒做出來。簡單的BFS,我愣是不會。哎,還是要把基礎打好啊。最后A掉3道,還有一道線段樹的沒有過,過些時間補上。我該抓緊時間復習了...
A - River Pollution
線段樹,求面積的并,很基礎的線段樹+離散化+掃描線,但我就是不會~
B - Middle number
今天這個是第一個過的,如果這個不過我相信后邊會更加艱難。給定一個數的序列,然后不斷的插入數字并保持遞增,最后詢問中間的數是多少。如果
數的個數是偶數,輸出中間兩個中小的。數據很大,時間是5s,我冒了個險,第一次先排序,每次二分找到要插入的位置,然后順序修改后邊的序列,過了!
二分的效率啊!!我看到后邊這個題無數人TLE到死。。。這個題給了我很大信心,不然。。。
現在知道了,正解是用兩個堆,一個大頂堆,一個小頂堆,大頂堆只能和小頂堆元素個數相同或者正好多一個。開始時將小的一般給大頂堆,大的一半給小頂堆,插入時和堆頂元素比一下,若大于大頂堆的堆頂元素,則插給小堆,否則給了大堆。詢問時只需輸出大堆的堆頂元素就可以了。
C - Game of Stones
JL出的題,乍一看很難,但是后來才知道簡單的要命:兩個人A和B玩游戲,有兩堆石子M和N,每次兩個人都至少從兩堆中任意一堆拿至少一個石子,直到兩堆石子都為空最后一個拿的人WIN。,A總是第一個拿,給定M和N,問A能否獲勝。( 0 < M , N < 10^50 )
答案:如果M==N,A輸,否則,A贏。我考慮到奇偶上了,結果WA了5次,哎。。。
D - The longest athletic track
給定N個點,和一棵生成樹(N-1條邊),最后問最長的一條路是多少。
上圖的答案是80。
求樹的直徑,兩次BFS,第一次任選起點,則終點一定是直徑的一個端點。然后再來一次BFS就可以了。
E - Buy Car
Brent喜歡騎摩托,現在有N個城市,Brent 想把所有城市逛一遍,但是他怕油不夠。每升油可以跑10km,他可以在任何一個城市加油。給出M條邊,
最后問Brent的摩托的容量最小是多少,如果不能逛完所有城市,輸出-1。
簡單的最小生成樹(正是Brent講座講的~),找出最小生成樹最小的一條邊長度為A。如果A%10==0,答案是A/10;否則答案是A/10+1;
最后排名大概是10名?(除去老隊員和admin大概是7,8名的樣子),問題應該不大了。嘻嘻,加油吧~ 可惡的BFS。。。一定搞定它。