关注
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();
}
}
查看原帖
点赞 评论
相关推荐
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 26届春招投递记录 #
32795次浏览 255人参与
# 妈妈治愈了你哪些脆皮时刻 #
47546次浏览 360人参与
# 27届实习投递记录 #
114961次浏览 1257人参与
# 我的工作日记 #
208013次浏览 1829人参与
# 我的求职总结 #
512838次浏览 7094人参与
# 你投了多少家公司?进展是___ #
248258次浏览 1449人参与
# 大学生该如何认清当下的就业环境? #
178867次浏览 943人参与
# AI面会问哪些问题? #
134660次浏览 3469人参与
# 要毕业了,再不说就来不及了 #
6419次浏览 112人参与
# 我与AI的日常 #
10840次浏览 202人参与
# 27届求职交流 #
500556次浏览 4665人参与
# 如果公司降薪,你会跳槽吗? #
168868次浏览 972人参与
# 今年秋招还有金九银十吗 #
85146次浏览 518人参与
# 25届非技术实习投递记录 #
159444次浏览 1028人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
168817次浏览 916人参与
# 应届生应该先就业还是先择业 #
202391次浏览 945人参与
# 快手求职进展汇总 #
775746次浏览 7155人参与
# 你以为的实习VS真实的实习 #
144226次浏览 760人参与
# 你觉得什么岗位会被AI替代 #
65424次浏览 386人参与
# 你的秋招进行到哪一步了 #
2803292次浏览 23414人参与
查看26道真题和解析