【bzoj4596】[Shoi2016]黑暗前的幻想乡 (矩阵树定理+容斥)
Description
Input
Output
题解:
这题叫我们给出 n 个点和 n−1 种颜色,每种颜色有若干条边。求这张图多少棵每种颜色的边都出现过的生成树
这首先可以看出,矩阵树定理,但要求每种颜色都取,我们考虑容斥。
$$ ans= f_n-f_{n-1}+f_{n-2}-f_{n-3}+ \ ... $$
fx 表示选其中 x 个颜色。
然后我们可以使用状压,1 表示选这个颜色,0 表示不选这个颜色。
CODE:
#include<iostream>
#include<cstdio>
#include<vector>
#include<cstring>
using namespace std; #define mod 1000000007
int n,m,x,y,ans=,a[][],siz[];
struct Edge{
int x,y;
Edge(int a,int b){x=a,y=b;}
Edge(){x=y=;}
}e[][]; int qpow(int x,int y){
int ans=;
while(y){
if(y&)ans=1LL*ans*x%mod;
y>>=,x=1LL*x*x%mod;
}
return ans;
} int Gauss(){
for(int i=;i<n;i++){
for(int j=i+;j<n;j++){
if(a[i][i]==)return ;
if(a[j][i]==)continue;
int t=1LL*a[j][i]*qpow(a[i][i],mod-)%mod;
for(int k=i;k<n;k++)
a[j][k]=(a[j][k]-1LL*a[i][k]*t%mod+mod)%mod;
}
}
int ans=;
for(int i=;i<n;i++)ans=1LL*ans*a[i][i]%mod;
return ans;
} int main(){
scanf("%d",&n);
for(int i=;i<n;i++){
scanf("%d",siz+i);
for(int j=;j<=siz[i];j++){
scanf("%d%d",&x,&y);
e[i][j]=Edge(x,y);
}
}
for(int i=;i<(<<n-);i++){
memset(a,,sizeof(a));
int f=;
for(int j=;j<n;j++){
if(i&(<<j-)){
for(int k=;k<=siz[j];k++){
a[e[j][k].x][e[j][k].y]--;
a[e[j][k].y][e[j][k].x]--;
a[e[j][k].x][e[j][k].x]++;
a[e[j][k].y][e[j][k].y]++;
}
}else f=-f;
}
for(int j=;j<=n;j++)
for(int k=;k<=n;k++)if(a[j][k]<)a[j][k]+=mod;
ans+=f*Gauss();
if(ans<)ans+=mod;
if(ans>=mod)ans-=mod;
}
printf("%d",ans);
}
【bzoj4596】[Shoi2016]黑暗前的幻想乡 (矩阵树定理+容斥)的更多相关文章
- bzoj 4596 [Shoi2016]黑暗前的幻想乡 矩阵树定理+容斥
4596: [Shoi2016]黑暗前的幻想乡 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 559 Solved: 325[Submit][Sta ...
- [SHOI2016] 黑暗前的幻想乡 - 矩阵树定理,容斥
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 20; const in ...
- bzoj4596/luoguP4336 [SHOI2016]黑暗前的幻想乡(矩阵树定理,容斥)
bzoj4596/luoguP4336 [SHOI2016]黑暗前的幻想乡(矩阵树定理,容斥) bzoj Luogu 题解时间 看一看数据范围,求生成树个数毫无疑问直接上矩阵树定理. 但是要求每条边都 ...
- 【BZOJ4596】【Luogu P4336】 [SHOI2016]黑暗前的幻想乡 矩阵树定理,容斥
同样是矩阵树定理的裸题.但是要解决它需要能够想到容斥才可以. \(20\)以内的数据范围一定要试试容斥的想法. #include <bits/stdc++.h> using namespa ...
- Luogu P4336 [SHOI2016]黑暗前的幻想乡 矩阵树定理+容斥原理
真是菜到爆炸....容斥写反(反正第一次写qwq) 题意:$n-1$个公司,每个公司可以连一些边,求每个边让不同公司连的生成树方案数. 矩阵树定理+容斥原理(注意到$n$不是很大) 枚举公司参与与否的 ...
- bzoj4596[Shoi2016]黑暗前的幻想乡 Matrix定理+容斥原理
4596: [Shoi2016]黑暗前的幻想乡 Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 464 Solved: 264[Submit][Sta ...
- BZOJ4596: [Shoi2016]黑暗前的幻想乡
Description 四年一度的幻想乡大选开始了,最近幻想乡最大的问题是很多来历不明的妖 怪涌入了幻想乡,扰乱了幻想乡昔日的秩序.但是幻想乡的建制派妖怪(人类) 博丽灵梦和八云紫等人整日高谈所有妖怪 ...
- P4336 [SHOI2016]黑暗前的幻想乡
P4336 [SHOI2016]黑暗前的幻想乡 矩阵树定理(高斯消元+乘法逆元)+容斥 ans=总方案数 -(公司1未参加方案数 ∪ 公司2未参加方案数 ∪ 公司3未参加方案数 ∪ ...... ∪ ...
- 【BZOJ4596】[Shoi2016]黑暗前的幻想乡 容斥+矩阵树定理
[BZOJ4596][Shoi2016]黑暗前的幻想乡 Description 幽香上台以后,第一项措施就是要修建幻想乡的公路.幻想乡有 N 个城市,之间原来没有任何路.幽香向选民承诺要减税,所以她打 ...
- 【BZOJ4596】黑暗前的幻想乡(矩阵树定理,容斥)
[BZOJ4596]黑暗前的幻想乡(矩阵树定理,容斥) 题面 BZOJ 有\(n\)个点,要求连出一棵生成树, 指定了一些边可以染成某种颜色,一共\(n-1\)种颜色, 求所有颜色都出现过的生成树方案 ...
随机推荐
- 《毛毛虫组》【Alpha】Scrum meeting 2
第二天 日期:2019/6/15 1.1 今日完成任务情况以及遇到的问题. 今日完成任务情况: (1)对数据库表进行完善及测试: (2)定义Regex类的IsMatch()方法: (3)进行这一模块代 ...
- sql 经典加强巩固练习题
由于本人需要加强巩固一下数据库知识,就搜罗了一些题目来练习,感觉不错,故分享一下资源难度层度依次上升这50道里面自认为应该没有太多错误,而且尽可能使用了最简单或是最直接的查询,有多种不相上下解法的题目 ...
- mariadb多源主从复制错误跳过.md
mysql 的主从错误跳过和mariadb的多源主从复制错误跳过操作不同,请注意: 更改会话的default_master_connection变量 STOP SLAVE 'slave_account ...
- python入门:if、elif、else 条件语句的基本用法
#!/usr/bin/env python # -*- coding:utf-8 -*- #elif(否则如果,译音:埃尔夫)eise(否则,译音:埃尔斯) #if.elif.else 条件语句的基本 ...
- python基本操作(五)
if 判断 if 条件: 代码1 代码2 代码3 代码块(同一缩进级别的代码,例如代码1.代码2和代码3是相同缩进的代码,这三个代码组合在一起就是一个代码块,相同缩进的代码会自上而下的运行) cls ...
- Pyhon从入门到致命
第一章 基础 1.python2和python3的区别 2.数据类型 2.1 int 整型 2.2 str 字符串不可变类型 2.3 bool 布尔类型 2.4 list 列表 2.5 tuple 元 ...
- Python3爬虫一之(urllib库)
urllib库是python3的内置HTTP请求库. ython2中urllib分为 urllib2.urllib两个库来发送请求,但是在python3中只有一个urllib库,方便了许多. urll ...
- 水题:UVa213- Message Decoding
Message Decoding Some message encoding schemes require that an encoded message be sent in two parts. ...
- Linux下open函数、read函数、write函数记录
open() #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> int open( cons ...
- CSS效果小结
效果属性 1.box-shadow(盒子阴影) 示例 加上 box-shadow 内阴影 复杂例子 阴影的形状跟原来的形状是一样的 结果: box-shadow 作用:1.营造层次感(立体感)2.充当 ...