에지를 복사하고 세분화하는 과정으로 만들어진 그래프에서 최대 가중 매칭의 가중치 합과 그러한 최대 매칭의 개수를 10^9+7로 나눈 나머지를 구한다.
어려움9동적 계획법트리DFS조합론아직 제출이 없습니다시간 제한4초메모리 제한256 MBChiaki is good at generating special graphs. Initially, she has a graph with only two vertices connected by an edge. Each time, she can choose an edge (u,v), make a copy of it, insert some new vertices (maybe zero) in the edge (i.e. let the new vertices be t_1,t_2,…,t_k, Chiaki would insert edges (u,t_1), (t_1,t_2), …, (t_k−1,t_k), (t_k,v) into the graph).
Given a weighted graph generated by above operations, Chiaki would like to know the maximum weighted matching of the graph and the number different maximum weighted matchings modulo (109+7)).
A matching in a graph is a set of pairwise non-adjacent edges, none of which are loops; that is, no two edges share a common vertex.
A maximum weighted matching is defined as a matching where the sum of the values of the edges in the matching have a maximal value.
There are multiple test cases. The first line of input contains an integer T, indicating the number of test cases. For each test case:
The first line contains two integers n and m (1≤n,m≤105) -- the number of vertices and the number of edges.
Each of the next m lines contains three integers u_i, v_i and w_i (1≤u_i,v_i≤n,1≤w_i≤109) -- deonting an edge between u_i and v_i with weight w_i.
It is guaranteed that neither the sum of all n nor the sum of all m exceeds 106.
For each test case, output two integers separated by a single space. The first one is the sum of weight and the second one is the number of different maximum weighted matchings modulo (109+7).