关注
import java.io.*;
import java.util.*;
class Edge{
int o, t, a, b;
public Edge(int o, int t, int a, int b){
this.o = o;
this.t = t;
this.a = a;
this.b = b;
}
}
public class Main{
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
static final int N = 1010, mod = (int) 1e9 + 7;
static int[] p = new int[N];
static int n, m;
static int[][] c = new int[N][N];
static Edge[] edges;
public static void initC(){
for (int i = 0; i < N; i ++ )
for (int j = 0; j <= i; j ++ ){
if (j == 0) c[i][j] = 1;
else c[i][j] = (c[i - 1][j] + c[i - 1][j - 1]) % mod;
}
}
public static int find(int u){
if (p[u] != u){
p[u] = find(p[u]);
}
return p[u];
}
public static void union(int i, int j){
p[find(i)] = find(j);
}
public static void main(String[] args) throws IOException{
String[] ss = br.readLine().split(" ");
n = Integer.parseInt(ss[0]);
m = Integer.parseInt(ss[1]);
edges = new Edge[m];
initC();
for (int i = 0; i <= n; i ++ ) p[i] = i;
for (int i = 0 ; i < m; i ++ ){
String[] strs = br.readLine().split(" ");
int o = Integer.parseInt(strs[0]), t = Integer.parseInt(strs[1]),
a = Integer.parseInt(strs[2]), b = Integer.parseInt(strs[3]);
edges[i] = new Edge(o, t, a, b);
}
Arrays.sort(edges, (x, y) -> {
return c[y.a][y.b] - c[x.a][x.b];
});
int cnt = 0, ans = 0;
for (int i = 0; i < m; i ++ ){
Edge e = edges[i];
if (find(e.o) == find(e.t)) continue;
union(e.o, e.t);
ans = (ans + c[e.a][e.b]) % mod;
cnt ++ ;
}
if (cnt != (n - 1)) bw.write(-1 + "");
else bw.write(ans + "");
bw.flush();
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 秋招签约后的心态变化 #
81703次浏览 805人参与
# 26届的你们有几段实习? #
41024次浏览 463人参与
# 月薪多少能在一线城市生存 #
24035次浏览 282人参与
# 你觉得早上几点上班合适? #
71656次浏览 299人参与
# 你以为的实习VS真实的实习 #
26290次浏览 243人参与
# 双非能在秋招上岸吗? #
221192次浏览 1170人参与
# 你后悔自己读研吗? #
18523次浏览 234人参与
# 打工人的工作餐日常 #
52206次浏览 408人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
117439次浏览 811人参与
# 一人推荐一个值得去的通信/硬件公司 #
186104次浏览 1858人参与
# 哪些公司真双非友好? #
15317次浏览 81人参与
# 你认为哪些项目算烂大街? #
16756次浏览 266人参与
# 追觅科技求职进展汇总 #
17956次浏览 120人参与
# 机械校招之路总结 #
93699次浏览 1894人参与
# 学历贬值真的很严重吗? #
23690次浏览 168人参与
# 你被哪些公司秒挂过? #
30541次浏览 239人参与
# 如何KTV领导 #
62522次浏览 472人参与
# 秋招拿一个offer可以躺平吗 #
146201次浏览 940人参与
# 找工作时的取与舍 #
82820次浏览 591人参与
# 最难的技术面是哪家公司? #
9284次浏览 73人参与