vani和cl2在一片樹林裡捉迷藏。
這片樹林裡有n座房子,m條有向道路,組成了一張有向無環圖。
樹林裡的樹非常茂密,足以遮擋視線,但是沿著道路望去,卻是視野開闊。
如果從房子a沿著路走下去能夠到達b,那麼在a和b裡的人是能夠相互望見的。
現在cl2要在這n座房子裡選擇k座作為藏身點,同時vani也專挑cl2作為藏身點的房子進去尋找,為了避免被vani看見,cl2要求這k個藏身點的任意兩個之間都沒有路徑相連。
為了讓vani更難找到自己,cl2想知道最多能選出多少個藏身點。
輸入格式
輸入資料的第一行是兩個整數n和m。
接下來m行,每行兩個整數 x,y,表示一條從 x 到 y 的有向道路。
輸出格式
輸出乙個整數,表示最多能選取的藏身點個數。
資料範圍
n≤200,m≤30000
輸入樣例:
7 5
1 23 2
2 44 5
4 6
輸出樣例:
3
#include
#include
using
namespace std;
const
int n =
205;
int n, m, u, v, g[n]
[n], mat[n]
;bool vis[n]
;bool
dfs(
int u)
}return
false;}
intmain()
//求傳遞閉包
for(
int k =
1; k <= n; k++)}
int ans = n;
//求出最大匹配
for(
int i =
1; i <= n; i++
)printf
("%d\n"
, ans)
;return0;
}
點分樹 ZJOI2007 捉迷藏
門 點分樹不卡常就別想過了。問樹中最遠黑點對距離 帶修改點分樹入門作 原圖先亂跑一次點分治,儲存點分治的每個root之間的父子關係,得到一顆點分樹。然後我們的原圖除了求dis就可以不管了 學習題解中不認識的大佬所說的套路 點分治得到點分樹 每個點用s1,s2 s 1,s 2 s1 s2 兩個資料結構...
BZOJ 1095 捉迷藏 動態點分治 點分樹
1095 zjoi2007 hide 捉迷藏 time limit 40 sec memory limit 256 mb submit 4152 solved 1756 submit status discuss description 捉迷藏 jiajia和wind是一對恩愛的夫妻,並且他們有很多...
最小路徑覆蓋,最小點覆蓋,最大獨立點集
node 1 最小路徑覆蓋 在乙個 的有向圖中,路徑覆蓋就是在圖中找一些路經,使之覆蓋了圖中的所有頂點,且任何乙個頂點有且只有一條路徑與之關聯 如果把這些路徑中的每條路徑從它的起始點走到它的終點,那麼恰好可以經過圖中的每個頂點一次且僅一次 如果不考慮圖中存在迴路,那麼每條路徑就是乙個弱連通子集 由上...