7 25 2014新生暑假個人排位賽06

2021-06-22 23:33:47 字數 1609 閱讀 8185

a題kruskal+並查集。注意要先把已經修好的路遍歷一遍形成最小生成樹。

還有。我把修好的路看成1,未修好的路看成0.以後要認真讀題啊警示自己~~~

-----------------------------------我是可愛的分割線--------------------------------------------

b、高興

題意:每兩個東西相鄰有乙個高興值。找出總高興值最大的排列。

2

0 12 0

30 -1 7

3 0 3

3 3 0

2 

10

解法:

1.把鏈狀想象成首尾斷開的環狀。就可以轉換為狀態壓縮dp的旅行商問題。

2.旅行商問題:從頂點0出發,每個頂點走一遍,最後回到頂點。求權值最小值。

而這道題,只需轉換為不加上最後回到起點的那條邊,並且改為求權值的最大值即可。

**如下:

int rec(int s,int v)

}return dp[s][v]=res;

}

3.把每個物品都放在起點試一試,找出最大的權值。輸出即可。

c、排序

題意:給n個數,從小到大輸出。

3

4 2 1

1 2 4
解法:

d、愛好和平

題意:每兩個頂點之間有且僅有一條邊相連。現要求破壞其中乙個頂點,得到兩顆子樹(或一條鏈),得到兩棵中較大的那棵擁有的頂點數,求頂點數最小值。

5 4

1 21 3

1 44 5

1
解法:

1、如果這是乙個圈,直接輸出1;

2、如果是一棵樹,用dfs(深度優先搜尋)遍歷。每個頂點的值就是它所有兒子節點的值相加。

具體實現:把max置為0,dfs遍歷一遍它的孩子,每dfs乙個孩子就把孩子的節點值加到max上,走完所有節點後,把當前節點的陣列的值變為max(dp[n]=max)。

3、dfs結束後,把每個頂點都試一遍。最大子樹的值maxson=max(maxson,dp[sole[j].v]);

4、注意!3中不要搜尋自己的父親。

e.萌學妹的手機(黑完學姐黑學妹。。。)

2

2.00 0

6 -1

2.00 0

9 -1

2

3

解法:

1、先轉換為斜60°的座標。

座標轉換:sx=x-(y)/sqrt(3.0);

sy=((y)*2.0)/sqrt(3.0);

2、把兩個點周圍搜一遍,找到最近的六邊形中心。。。。。 3、



2014新生暑假個人排位賽06

時間限制 3000 ms 記憶體限制 65536 kb 小弱的學校很喜歡修路,現在給你一張他學校的地圖,地圖上有n個點和m條雙向邊,每條邊代表一條路,這條路有可能是暢通,也有可能正在修路。大家都知道修路使得交通很不方便。所有小弱很想學校快快的把路修好,使得他能夠很輕鬆的到達主樓915去刷題。但考慮到...

2014新生暑假個人排位賽08

時間限制 1000 ms 記憶體限制 65536 kb 小弱發明了乙個好玩的遊戲,遊戲開始時給你乙個凸多邊形,這個多邊形可以任意旋轉,平移。讓你造出乙個正方形 容器 足夠大 容器的兩邊垂直,兩邊水平。用這個容器把這個多邊形完全包含,且多邊形有且只有一條邊恰好與容器下邊界重合 與外界相通 不同的邊與外...

2014新生暑假個人排位賽11

時間限制 3000 ms 記憶體限制 65536 kb 喜歡焦叔叔的小妹妹實在是太多了,以至於焦叔叔不得不給她們編號1 n。焦叔叔對於編號為質數的小妹妹有種特別的好感,由於有好感的小妹妹數目太多,焦叔叔自己都數不清楚了,請你來幫忙數一下。多組資料,每行乙個正整數n,n不大於1000000000。資料...