关于穿越到异世界我作为吟游诗人想要收集更多传说这件事
题号:NC209971
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

在异世界一块神秘的大陆上有n个国家,有m条单向道路连接着两个国家,(u,v)表示可以从国家u通往国家v。每个国家都流传着一个独一无二的神话传说。某天一个吟游诗人穿越到了这片大陆,他可以选择从任意一个有传送门的国家出发,并在任意一个设有传送门的国家结束他的旅程,回到家乡,诗人想要收集尽可能多的神话传说将它们传唱。


输入描述:

第一行T表示样例组数(0<T<=10)

对于每个样例第一行两个整数n,m(0<n<=10000,0<m<=100000)表示国家数量和道路数量。

接下来m行每行两个整数u,v(1<=u,v<=n)表示有一条从国家u到国家v的道路。

一行n个整数0/1,第i个整数a[i]=1表示第i个国家设有传送门,若a[i]=0表示第i个国家并没有传送门。保证图上至少有1个传送门。


输出描述:

一个整数表示他能收集到的最多的传说数量。
示例1

输入

复制
1
3 3
1 2
2 1
2 3
1 0 1

输出

复制
3