這個題也是最長上公升子串行的應用題,我們只需要對一邊的端點排序,再對另一邊的端點求最長上公升子串行即可,因為一邊端點有序,另一邊端點求最長上公升子串行就可以保證這些橋不相交。自行腦補。
這題需要用到最長上公升子串行的優化,樸素只能得部分分
#include
#define x first
#define y second
using
namespace std;
typedef
long
long ll;
typedef pair<
int,
int> pii;
const
int n=
5e3+7;
pii a[n]
;int dp[n]
;int
main()
sort
(a+1
,a+1
+n);
for(
int i=
1;i<=n;i++)}
res=
max(res,dp[i]);
} cout
}
當前的數如果大於up陣列裡的數就直接新增,否則就可以在up陣列中替換乙個數使得後面的答案更優
#include
#define x first
#define y second
using
namespace std;
typedef
long
long ll;
typedef pair<
int,
int> pii;
const
int n=
2e5+7;
pii a[n]
;int dp[n]
;int up[n]
,u;int
main()
sort
(a+1
,a+1
+n);
up[u]
=a[1
].y;
for(
int i=
2;i<=n;i++
) cout<1/加一是因為下標從0開始
return0;
}
Bitset 友好城市
分塊 st表 bitset卡常 把公路分成k塊,內部通過bitset處理出連通狀況。每次詢問,把連續的一些塊通過st表得到邊,再用兩次dfs求強連通分量的方法,合併這些邊,得到新的連通狀況。include include include include include include define ...
例9 7 友好城市
時間限制 1000 ms 記憶體限制 65536 kb palmia國有一條橫貫東西的大河,河有筆直的南北兩岸,岸上各有位置各不相同的n個城市。北岸的每個城市有且僅有乙個友好城市在南岸,而且不同城市的友好城市不相同。每對友好城市都向 申請在河上開闢一條直線航道連線兩個城市,但是由於河上霧太大,決定避...
P2782 友好城市
p2782 友好城市 1本題隱晦的說這個題目是乙個最長上公升子串行,先對南邊或者北邊排個序,然後再求最長上公升子串行,我也不知道自己怎麼想出來的,可能就是我最近一直在寫dp有關的題目吧 include include include include include include include i...