[ZJOI2011]最小割

成绩 0 开启时间 2013年02月21日 星期四 18:02
折扣 0.8 折扣时间 2013年02月28日 星期四 18:02
允许迟交 关闭时间 2013年02月28日 星期四 18:02
输入文件 mincuto.in 输出文件 mincuto.out

【题目描述】


小白在图论课上学到了一个新的概念——最小割,下课后小白在笔记本上写下了如下这段话:

“对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点s,t不在同一个部分中,则称这个划分是关于s,t的割。

对于带权图来说,将所有顶点处在不同部分的边的权值相加所得到的值定义为这个割的容量,而s,t的最小割指的是在关于s,t的割中容量最小的割”

现给定一张无向图,小白有若干个形如“图中有多少对点它们的最小割的容量不超过x呢”的疑问,小蓝虽然很想回答这些问题,但小蓝最近忙着挖木块,于是作为仍然是小蓝的好友,你又有任务了。


【输入格式】


输入文件第一行有且只有一个正整数T,表示测试数据的组数。

    对于每组测试数据,

    第一行包含两个整数n,m,表示图的点数和边数。

    下面m行,每行3个正整数u,v,c(1<=u,v<=n,0<=c<=106),表示有一条权为c的无向边(u,v)

    接下来一行,包含一个整数q,表示询问的个数

    下面q行,每行一个整数x,其含义同题目描述。


【输出格式】

对于每组测试数据,输出应包括q行,第i行表示第i个问题的答案。对于点对(p,q)和(q,p),只统计一次(见样例)。

【样例输入】

     1
     5 0
     1
     0

【样例输出】

10

【提示】

对于30%的数据   n<=40,m<=400,q<=10

对于100%的数据  T<=10,n<=150,m<=3000,q<=30,x在32位有符号整数类型范围内。

  图中两个点之间可能有多条边

【来源】

ZJOI2011 Day1