[有向图树形图计数] BZOJ 4894 天赋
来源:互联网 发布:9377烈焰网页数据辅助 编辑:程序博客网 时间:2024/04/29 21:22
根本不知道题面在讲什么
矩阵树定理有向图版本 邻接矩阵还是邻接矩阵 度数矩阵根据是出度还是入度分别计算内向树和外向树
#include<cstdio>#include<cstdlib>#include<algorithm>using namespace std;typedef long long ll;const int N=305;const int P=1e9+7;int n;char s[N][N];inline ll Pow(ll a,int b){ ll ret=1; for (;b;b>>=1,a=a*a%P) if (b&1) ret=ret*a%P; return ret;}inline ll Inv(ll a){ return Pow(a,P-2);}int a[N][N];inline int det(int n){ int f=0; for (int i=1;i<=n;i++){ int k=0; for (int j=i;j<=n;j++) if (a[j][i]) {k=j; break; } if (i^k) { for (int j=i;j<=n;j++) swap(a[i][j],a[k][j]); f^=1; } for (int j=i+1;j<=n;j++){ ll t=(ll)Inv(a[i][i])*a[j][i]%P; for (int k=i;k<=n;k++) (a[j][k]+=P-(ll)t*a[i][k]%P)%=P; } } ll ret=1; for (int i=1;i<=n;i++) ret=ret*a[i][i]%P; return f?(P-ret)%P:ret;}int main(){ freopen("t.in","r",stdin); freopen("t.out","w",stdout); scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%s",s[i]+1); for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (s[i][j]=='1'){ a[n-i+1][n-j+1]=P-1; a[n-j+1][n-j+1]++; } int ans=det(n-1); printf("%d\n",ans); return 0;}
还有个我以前一直以为只能这么做的状压做法
0 0
- [有向图树形图计数] BZOJ 4894 天赋
- BZOJ 4894(天赋-有向图生成树计数)
- BZOJ 4894: 天赋 有向图生成树计数
- bzoj 4894: 天赋 矩阵树定理求有向图生成树数量
- 有向图最小树形图
- superoj922 树形图计数
- 树形图计数
- 【ssoj1027】树形图计数
- SHOPPING 最小树形图——有向图
- 有向图的最小生成树,最小树形图
- 有向图 MST 最小树形图 刘朱算法
- poj 3164 Command Network#有向最小树形图
- HDU3904【有向无环树形图SG博弈】
- HDU4009 最小树形图 有向最小生成树
- 树形图计数 count题解
- [日常训练] 树形图计数
- BZOJ 4349 最小树形图
- 计数给定有向邻接表表示的图的连通分量个数
- 使用MATLAB加载csv格式数据
- Asking The Right Questions--Fallacies In Reasoning.
- Libevent_
- Codeforces805 C. Find Amir
- Docker 私有仓库,上传镜像报错:server gave HTTP response to HTTPS client
- [有向图树形图计数] BZOJ 4894 天赋
- java干货——一键导入QQ群里的QQ号(二)
- Session 'app':Error Installing APK
- HDU
- 使用PL/SQL developer 创建DBMS_JOB定时任务
- java面向对象核心思想
- CF411div2 A. Fake NP
- 快速排序算法思想及实现
- 怎么保存退出vi编辑