[SHOI2016] 黑暗前的幻想乡 - 矩阵树定理,容斥
2024-09-07 13:22:38
#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 20;
const int mod = 1e+9 + 7;
namespace mat {
int a[N][N];
int n,p=1;
void Clear() {
memset(a,0,sizeof a);
}
int Solve() {
int ans = 1;
for(int i = 1; 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[i][k] - t * a[j][k] + mod) % mod;
swap(a[i], a[j]);
ans = - ans;
}
ans = (ans * a[i][i]) % mod;
}
return (ans + mod) % mod;
}
void Make(int p,int q) {
a[p][q]--;
a[q][p]--;
a[p][p]++;
a[q][q]++;
}
} // namespace mat
int n;
vector <pair<int,int> > v[N];
signed main() {
ios::sync_with_stdio(false);
cin>>n;
for(int i=1;i<n;i++) {
int t;
cin>>t;
for(int j=1;j<=t;j++) {
int t1,t2;
cin>>t1>>t2;
v[i].push_back(make_pair(t1,t2));
}
}
int ans = 0;
mat::n=n;
for(int i=0;i<1<<(n-1);i++) {
int t=__builtin_popcount(i);
mat::Clear();
for(int j=1;j<=(n-1);j++) {
if(i&(1<<(j-1))) {
for(int k=0;k<v[j].size();k++) {
mat::Make(v[j][k].first, v[j][k].second);
}
}
}
int tmp = mat::Solve();
ans += ((n-t-1)%2 ? -1 : 1)*tmp;
ans %= mod;
ans += mod;
ans %= mod;
}
cout<<ans<<endl;
}
最新文章
- Windows驱动——虚拟机 虚拟串口 双机调试
- MyBatis学习(四)、MyBatis配置文件
- sqlserver 批量删除存储过程和批量修改存储过程的语句
- 最新中国IP段获取办法与转成ROS导入格式
- ubuntu常见错误--Could not get lock /var/lib/dpkg/lock解
- db2日期和时间常用汇总
- IOS 改变导航栏返回按钮的标题
- win7进入不了系统故障修复
- Git diff (---和+++具体解释)
- C# 经典排序算法大全
- PHPCMS V9表单向导调用及分页
- struts.xml如何加载到及配置问题
- 一起学习Hibernate: Hibernate01 —— Hibernate的概述与入门案例
- maven常见问题处理(3-3)Gradle编译时下载依赖失败解决方法
- Docker 镜像
- (十一) UVC调节亮度
- pythonのdjango 信号
- 46-web页面登入前和登入后控制
- 在Visual Studio代码中使用Flask
- PHP中require(),include(),require_once()和include_once()有什么区别
热门文章
- P1217 [USACO1.5]回文质数 Prime Palindromes(stringstream,sizeof(num)/sizeof(num[0]),打表)
- Navicat Premium15安装与激活(破解)
- Spring Aop和Spring Ioc(二)
- Net Core使用Lucene.Net和盘古分词器 实现全文检索
- Jquery实现挂号平台首页源码
- 嵊州D6T2 城市 city
- [THUSC2016]成绩单 [区间dp]
- Beego的参数配置
- hdu 1005 Number Sequence(循环节)
- 0级搭建类003-CentOS Linux安装 (CentOS 7)公开