Rikka with Minimum Spanning Trees(徐州区域赛A-最小生成树)
题目要求算出最小生成树的总边权和乘上不同最小生成树的个数(边集不同即为不同)
所以改了一下最小生成树模板,加了一个while循环求相同边的个数
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define mod 1000000007
struct Edge{
int u,v;
unsigned ll w;
}e[100005];
unsigned ll k1,k2;
unsigned ll xorShift128Plus()
{
unsigned ll k3=k1,k4=k2;
k1=k4;
k3^=k3<<23;
k2=k3^k4^(k3>>17)^(k4>>26);
return k2+k4;
}
int n,m,p[100005];
void gen()
{
scanf("%d%d%llu%llu",&n,