思路:DAC图的最小路径覆盖问题 = 顶点数-最大匹配;
#include <stdio.h>
#include <string.h>
#define M 150
int n,link[M],map[M][M],vis[M];
int DFS (int u)
{
<= n;v ++)
if (!vis[v]&&map[u][v])
{
vis[v] = 1;
if (link[v] == -1||DFS(link[v]))
{
link[v] = u;
return 1;
}
}
0;
}
int MaxMatch()
{
0;
(link,-1,sizeof(link));
<= n;u ++)
memset (vis,0,sizeof(vis));
if (DFS(u))
res ++;
res;
}
int main ()
{
t,m,i,j;
("%d",&t);
--)
scanf ("%d%d",&n,&m);
memset (map,0,sizeof(map));
while (m --)
{
scanf ("%d%d",&i,&j);
map[i][j] = 1;
}
int ans = n - MaxMatch();
printf ("%d\n",ans);
0;
}