关注
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();
}
}
查看原帖
点赞 评论
相关推荐
牛客热帖
更多
正在热议
更多
# Agent面试会问什么? #
30827次浏览 1222人参与
# 通信/硬件的薪资开多少,才值得去? #
76241次浏览 406人参与
# 厦门银行科技岗值不值得投 #
18590次浏览 420人参与
# 面试体验最好和最差的公司 #
22410次浏览 159人参与
# 美团笔试 #
889297次浏览 5593人参与
# 我的求职进度条 #
979250次浏览 6512人参与
# 哪些公司一直卡在简历筛选 #
103291次浏览 339人参与
# 拿到offer之后,可以做些什么 #
103301次浏览 505人参与
# 说说你知道的学历厂 #
399174次浏览 1420人参与
# 平台or薪资 硬件uu更看重哪个 #
167065次浏览 624人参与
# bilibili求职进展汇总 #
190585次浏览 1091人参与
# 听劝,这个公司值得去吗 #
714793次浏览 2024人参与
# 一人分享一个skill #
8119次浏览 218人参与
# 春招至今,你收到几个面试了? #
79327次浏览 1046人参与
# 给工作过的公司写一条大众点评,你会怎么写? #
10823次浏览 131人参与
# 美团秋招笔试 #
207968次浏览 1166人参与
# 拼多多工作体验 #
55140次浏览 387人参与
# 一人说一个提前实习的好处 #
122956次浏览 715人参与
# 烂工作和没工作哪个更痛苦? #
17952次浏览 271人参与
# 巨人网络求职进展汇总 #
193647次浏览 1232人参与
# AI替代不了什么? #
12092次浏览 201人参与

查看16道真题和解析