博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[CQOI 2018]社交网络
阅读量:4868 次
发布时间:2019-06-11

本文共 858 字,大约阅读时间需要 2 分钟。

Description

\(n\) 个点以 \(1\) 为根的有向生成树个数。

\(1\leq n\leq 250\)

Solution

我终于会 \(\texttt{Matrix-Tree}\) 辣!!

写详解是不可能的,直接。

注意的是有向图度数矩阵是入度。

Code

#include 
using namespace std;const int N = 250+5, yzh = 10007;int n, m, u, v, a[N][N];int gauss() { int ans = 1; for (int i = 2; i <= n; i++) { for (int j = i+1; j <= n; j++) while (a[j][i]) { int t = a[i][i]/a[j][i]; for (int k = i; k <= n; k++) (a[i][k] -= a[j][k]*t%yzh) %= yzh; swap(a[i], a[j]); ans *= -1; } (ans *= a[i][i]) %= yzh; } return (ans+yzh)%yzh;}void work() { scanf("%d%d", &n, &m); for (int i = 1; i <= m; i++) { scanf("%d%d", &v, &u); ++a[v][v], --a[u][v]; } printf("%d\n", gauss());}int main() {work(); return 0; }

转载于:https://www.cnblogs.com/NaVi-Awson/p/8984437.html

你可能感兴趣的文章
javafx实现手机版QQ登录界面
查看>>
XML到底是什么
查看>>
35 个 Java 代码性能优化总结
查看>>
mac平台安装配置TomCat
查看>>
组播原理
查看>>
tomcat安装
查看>>
关于互斥锁和条件变量
查看>>
HDU1846(巴什博奕)
查看>>
改变checkbox和radio的默认样式
查看>>
微机原理之 80x86微处理器
查看>>
如何创建基本的高级队列之二:创建接收方代码
查看>>
堆表的在执行Select语句时的默认排序问题——发现问题
查看>>
oracle监听理解 命名理解
查看>>
Python3基础1
查看>>
C#高性能二进制序列化
查看>>
JS常用函数
查看>>
Python学习教程:Python3除法之真除法、截断除法和下取整对比
查看>>
CSS杂集(标准流&多行垂直居中)
查看>>
Javascript中数组与字典(即map)的使用
查看>>
php 正则匹配中文(转)
查看>>