题目链接

BZOJ5297

题解

最近这玩意这么那么火

这题要用到有向图的矩阵树定理

主对角线上对应入度

剩余位置如果有边则为\(-1\),不然为\(0\)

\(M_{i,i}\)即为以\(i\)为根的有向图生成树个数

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<map>
#define Redge(u) for (int k = h[u],to; k; k = ed[k].nxt)
#define REP(i,n) for (int i = 1; i <= (n); i++)
#define mp(a,b) make_pair<int,int>(a,b)
#define cls(s) memset(s,0,sizeof(s))
#define cp pair<int,int>
#define LL long long int
using namespace std;
const int maxn = 255,maxm = 100005,INF = 1000000000,P = 10007;
inline int read(){
int out = 0,flag = 1; char c = getchar();
while (c < 48 || c > 57){if (c == '-') flag = -1; c = getchar();}
while (c >= 48 && c <= 57){out = (out << 3) + (out << 1) + c - 48; c = getchar();}
return out * flag;
}
int qpow(int a,int b){
int ans = 1;
for (; b; b >>= 1,a = a * a % P)
if (b & 1) ans = ans * a % P;
return ans;
}
int inv(int x){return qpow(x,P - 2);}
int A[maxn][maxn],n,m;
int gause(){
int rev = 1;
for (int i = 2; i <= n; i++){
int j = i;
for (int k = i + 1; k <= n; k++)
if (abs(A[k][i]) > abs(A[j][i]))
j = k;
if (j != i){
for (int k = i; k <= n; k++) swap(A[i][k],A[j][k]);
rev = -rev;
}
for (j = i + 1; j <= n; j++){
int t = A[j][i] * inv(A[i][i]) % P;
for (int k = i; k <= n; k++){
A[j][k] = ((A[j][k] - A[i][k] * t % P) % P + P) % P;
}
}
}
int re = 1;
for (int i = 2; i <= n; i++)
re = re * A[i][i] % P;
re = (re * rev % P + P) % P;
return re;
}
int main(){
n = read(); m = read();
int a,b;
while (m--){
a = read(); b = read();
if (a == b) continue;
A[b][a] = -1;
A[a][a]++;
}
printf("%d\n",gause());
return 0;
}

最新文章

  1. 格雷码原理与Verilog实现
  2. Python3基础 访问列表 大于等于指定索引值的所有元素
  3. js定时器的时间最小值-setTimeout、setInterval
  4. PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。
  5. String StringBuilder以及StringBuffer
  6. 构建maven的web项目时注意的问题
  7. C/C++ 知识点---C语言关键字(32个)
  8. Java-HttpServletResponse-HttpServletResponseWrapper
  9. eShopOnContainers 知多少[1]:总体概览
  10. 三种工具绘制errorbar图
  11. luogu P1003 铺地毯
  12. 在Visual Studio里配置及查看IL
  13. 让我对 docker swarm mode 的基本原理豁然开朗的几篇英文博文
  14. Zabbix4.2.0使用Python连接企业微信报警
  15. jenkins无法获取插件的解决办法
  16. 前端 --- 7 Bootstrop框架
  17. 【Revit API】脱离中心文件
  18. docker下 klee第一个测试
  19. UOJ #122 【NOI2013】 树的计数
  20. 搜索引擎ElasticSearch系列(五): ElasticSearch2.4.4 IK中文分词器插件安装

热门文章

  1. spring-JDBC Template
  2. 解决SecureCRT远程Linux遇到文件不能直接往CRT里直接拖入的问题
  3. 硬件中断--DEBUG系列
  4. spark&amp;dataframe
  5. 12,nginx+uWSGI+django+virtualenv+supervisor发布web服务器
  6. LDAP操作的两种方案
  7. oracle集群部署相关文章
  8. javascript将分,秒,毫秒转换为xx天xx小时xx秒(任何语言通用,最通俗易懂)
  9. java中多态的概念
  10. Python 实现随机打乱字符串