友好城市(電路佈線)

2022-07-01 16:39:07 字數 989 閱讀 9007

時間限制: 1 sec  記憶體限制: 128 mb

提交: 28  解決: 13

[提交][狀態][討論版][命題人:外部匯入]

palmis國有一條橫貫東西的大河,何有筆直的南北兩岸,岸上各有位置各不相同的n個城市。北岸的每個城市有且僅有乙個友好城市在南岸,而且不同城市的友好城市不相同。

每對友好城市都向**申請在河上開闢一條直線航道連線兩個城市,但是由於河上霧太大,**決定避免任意兩條航道交叉,以避免事故。程式設計幫助**做出一些批准和拒絕申請的決定,使得在保證任意兩條航線不想交的情況下,被批准的申請盡量多。

第1行,乙個整數n(1 <= n <= 5000),表示城市數。

第2行到第n+1行,每行兩個整數,中間用1個空格隔開,分別表示南岸和北岸的一對友好城市的座標。(0 <= xi <= 10000)

僅一行,輸出乙個整數,表示**所能批准的最多申請數。

7

22 4

2 610 3

15 12

9 817 17

4 2

4

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

struct

node

e[5005

];bool

cmp(node a,node b)

int dp[5005

];int

main()

sort(e+1,e+1+n,cmp);//

先排個序

for(int i=2;i<=n;i++)}}

int mx=0

;

for(int i=1;i<=n;i++)

cout

return0;

}

Bitset 友好城市

分塊 st表 bitset卡常 把公路分成k塊,內部通過bitset處理出連通狀況。每次詢問,把連續的一些塊通過st表得到邊,再用兩次dfs求強連通分量的方法,合併這些邊,得到新的連通狀況。include include include include include include define ...

友好城市(dp演算法)

這個題也是最長上公升子串行的應用題,我們只需要對一邊的端點排序,再對另一邊的端點求最長上公升子串行即可,因為一邊端點有序,另一邊端點求最長上公升子串行就可以保證這些橋不相交。自行腦補。這題需要用到最長上公升子串行的優化,樸素只能得部分分 include define x first define y...

例9 7 友好城市

時間限制 1000 ms 記憶體限制 65536 kb palmia國有一條橫貫東西的大河,河有筆直的南北兩岸,岸上各有位置各不相同的n個城市。北岸的每個城市有且僅有乙個友好城市在南岸,而且不同城市的友好城市不相同。每對友好城市都向 申請在河上開闢一條直線航道連線兩個城市,但是由於河上霧太大,決定避...