bzoj 4894: 天赋
Description
小明有许多潜在的天赋,他希望学习这些天赋来变得更强。正如许多游戏中一样,小明也有n种潜在的天赋,但有
一些天赋必须是要有前置天赋才能够学习得到的。也就是说,有一些天赋必须是要在学习了另一个天赋的条件下才
能学习的。比如,要想学会"开炮",必须先学会"开枪"。一项天赋可能有多个前置天赋,但只需习得其中一个就可
以学习这一项天赋。上帝不想为难小明,于是小明天生就已经习得了1号天赋-----"打架"。于是小明想知道学习完
这n种天赋的方案数,答案对1,000,000,007取模。
Solution
#include<bits/stdc++.h>
using namespace std;
const int N=310,mod=1e9+7;
int a[N][N],n;char s[N];
inline void solve(){
	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[i][k]-1ll*a[j][k]*t)%mod,swap(a[i][k],a[j][k]);
				ans=(-ans+mod)%mod;
			}
		ans=1ll*ans*a[i][i]%mod;
	}
	if(ans<0)ans+=mod;
	printf("%d\n",ans);
}
int main(){
  freopen("pp.in","r",stdin);
  freopen("pp.out","w",stdout);
  scanf("%d",&n);
  for(int i=1;i<=n;i++){
	  scanf("%s",s+1);
	  for(int j=1;j<=n;j++){
		  a[i][j]-=s[j]-'0';
		  a[j][j]+=s[j]-'0';
	  }
  }
  solve();
  return 0;
}
												
											bzoj 4894: 天赋的更多相关文章
- BZOJ.4894.天赋(Matrix Tree定理 辗转相除)
		
题目链接 有向图生成树个数.矩阵树定理,复习下. 和无向图不同的是,度数矩阵改为入度矩阵/出度矩阵,分别对应外向树/内向树. 删掉第i行第i列表示以i为根节点的生成树个数,所以必须删掉第1行第1列. ...
 - bzoj 4897 天赋 有向图的矩阵数定理
		
4894: 天赋 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 104 Solved: 80[Submit][Status][Discuss] De ...
 - BZOJ 4894 有向图 外向生成树个数
		
4894: 天赋 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 191 Solved: 150[Submit][Status][Discuss] D ...
 - 【BZOJ】4894: 天赋
		
题解 这道题是求一个有向图的外向生成树 入度矩阵对应着外向生成树,出度矩阵对应着内向生成树,知道了这个就可以求出基尔霍夫矩阵了,同时n - 1阶主子式一定要删掉根节点的一行一列 代码 #include ...
 - @总结 - 7@ 生成树计数 —— matrix - tree 定理(矩阵树定理)与 prüfer 序列
		
目录 @0 - 参考资料@ @0.5 - 你所需要了解的线性代数知识@ @1 - 矩阵树定理主体@ @证明 part - 1@ @证明 part - 2@ @证明 part - 3@ @证明 part ...
 - 【Learning】矩阵树定理 Matrix-Tree
		
矩阵树定理 Matrix Tree  矩阵树定理主要用于图的生成树计数. 看到给出图求生成树的这类问题就大概要往这方面想了. 算法会根据图构造出一个特殊的基尔霍夫矩阵\(A\),接着根据矩阵树定理, ...
 - 【BZOJ4894】天赋(矩阵树定理)
		
[BZOJ4894]天赋(矩阵树定理) 题面 BZOJ Description 小明有许多潜在的天赋,他希望学习这些天赋来变得更强.正如许多游戏中一样,小明也有n种潜在的天赋,但有 一些天赋必须是要有 ...
 - 洛谷 P2587 BZOJ 1034 [ZJOI2008]泡泡堂
		
题目描述 //不知道为什么BZOJ和洛谷都没有这幅图了,大牛们几年前的博客上都有这幅图的,把它贴上来吧 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省 ...
 - BZOJ 2127: happiness [最小割]
		
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
 
随机推荐
- C语言第一周作业
			
题目一:7-3 温度转换 本题要求编写程序,计算华氏温度150°F对应的摄氏温度.计算公式:C=5×(F−32)/9,式中:C表示摄氏温度,F表示华氏温度,输出数据要求为整型. 1.实验代码 2.设计 ...
 - Python基于共现提取《釜山行》人物关系
			
Python基于共现提取<釜山行>人物关系 一.课程介绍 1. 内容简介 <釜山行>是一部丧尸灾难片,其人物少.关系简单,非常适合我们学习文本处理.这个项目将介绍共现在关系中的 ...
 - javabean 是什么?
			
JavaBean规范 Bean的中文含义是“豆子”,顾名思义,JavaBean是指一段特殊的Java类, 就是有默然构造方法,只有get,set的方法的java类的对象. 专业点解释是: JavaBe ...
 - 【iOS】Swift类的继承、构造方法、析构器等复习
			
一.继承与重写, 防止重写 1.1 基类, 不继承任何类. Swift不想OC或者Java中继承自Object类.定义一个类,不继承任何类,该类就是基类. [java] view plaincopy ...
 - Python 迭代器之列表解析与生成器
			
 [TOC] 1. 列表解析 1.1 列表解析基础 列表解析把任意一个表达式应用到一个迭代对象中的元素 Python内置ord函数会返回一个字符的ASCII整数编码(chr函数是它的逆过程, 它将A ...
 - jQuery 文档操作之prepend() 和prependTo()方法.
			
//prepend() $("#btnpre").click(function(){ //该方法在被选元素的开头(仍位于内部)插入指定内容. $("div"). ...
 - python 基础   set  集合类型补充
			
为啥今天又重提这个数据类型呢?平时用的少,等要用起来的时候才发现,自己对这块啥都不知道了,so,今天就把这块再梳理一下咯. 一.set集合,是一个无序且不重复的元素集合.这一点是非常重要的. 二.集合 ...
 - Linq SelectMany 交叉连接
			
class Student1 { public int Score { get; set; } public Student1(int score) { this.Score = score; } } ...
 - maven安装、配置
			
maven的安装和配置 1.将maven解压到自定义文件夹下.例如解压到如下目录(解压目录最好不要有中文字): 2:配置环境变量:一定要注意要用分号:与其他值隔开 3.在cmd中测试,验证是否安装成 ...
 - EasyUI  easyui-combobox实现数据联动
			
实现效果:当用户选择了调查地区以后,只显示当前选择地区的频道,如果没有选择地区,那么频道下拉列表是空的.实现效果,如下