bzoj 4897 天赋 有向图的矩阵数定理
4894: 天赋
Time Limit: 10 Sec Memory Limit: 128 MB
Submit: 104 Solved: 80
[Submit][Status][Discuss]
Description
Input
Output
第一行一个整数,问题所求的方案数。
Sample Input
01111111
00101001
01010111
01001111
01110101
01110011
01111100
01110110
Sample Output
HINT
Source
题解:根向儿子,入度矩阵,儿子向根,出度矩阵。
什么意思,第一种,比如u-->v则 v,v++ ,u,v--
另外一直则 u-->v u,u++ v,u--
第二种就是将边反向,然后变成第一种。
有向树中删除的那一行必须是根的那一行。
#pragma GCC optimize(2)
#pragma G++ optimize(2)
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstdio>
#include<cstring> #define ll long long
#define N 307
#define mod 1000000007
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-;ch=getchar();}
while(isdigit(ch)){x=(x<<)+(x<<)+ch-'';ch=getchar();}
return x*f;
} int n;
ll a[N][N];
char ch[N];
ll ans=; int main()
{
n=read();
for (int i=;i<=n;i++)
{
scanf("%s",ch+);
for (int j=;j<=n;j++)
if(ch[j]=='') a[j][j]++,a[i][j]--;
}
for (int i=;i<=n;i++)
{
for (int j=i+;j<=n;j++)
{
int A=a[i][i],B=a[j][i];
while(B)
{
int t=A/B;A%=B;swap(A,B);
for(int k=i;k<=n;k++)(a[i][k]=a[i][k]-t*a[j][k]%mod+mod)%=mod;
for(int k=i;k<=n;k++)swap(a[i][k],a[j][k]);
ans=-ans;
}
}
if(!a[i][i])cout<<i<<endl;
(ans*=a[i][i])%=mod;
if(!a[i][i])break;
}
printf("%lld\n",(ans%mod+mod)%mod);
}
bzoj 4897 天赋 有向图的矩阵数定理的更多相关文章
- BZOJ-1002 轮状病毒 高精度加减+Kirchhoff矩阵数定理+递推
1002: [FJOI2007]轮状病毒 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3543 Solved: 1953 [Submit][Statu ...
- BZOJ 4766: 文艺计算姬 [矩阵树定理 快速乘]
传送门 题意: 给定一个一边点数为n,另一边点数为m,共有n*m条边的带标号完全二分图$K_{n,m}$ 求生成树个数 1 <= n,m,p <= 10^18 显然不能暴力上矩阵树定理 看 ...
- BZOJ 1016 最小生成树计数(矩阵树定理)
我们把边从小到大排序,然后依次插入一种权值的边,然后把每一个联通块合并. 然后当一次插入的边不止一条时做矩阵树定理就行了.算出有多少种生成树就行了. 剩下的交给乘法原理. 实现一不小心就会让程序变得很 ...
- bzoj 4766: 文艺计算姬 矩阵树定理
题目: 给定一个一边点数为\(n\),另一边点数为\(m\),共有\(n*m\)条边的带标号完全二分图\(K_{n,m}\) 计算其生成树个数 \(n,m,p \leq 10^{18} ,p为模数\) ...
- bzoj 3534: [Sdoi2014]重建【矩阵树定理】
啊啊啊无脑背过果然不可取 比如这道题就不会写 参考:https://blog.csdn.net/iamzky/article/details/41317333 #include<iostream ...
- 【BZOJ5297】【CQOI2018】社交网络(矩阵树定理)
[BZOJ5297][CQOI2018]社交网络(矩阵树定理) 题面 BZOJ 洛谷 Description 当今社会,在社交网络上看朋友的消息已经成为许多人生活的一部分.通常,一个用户在社交网络上发 ...
- spoj104 highways 生成树计数(矩阵树定理)
https://blog.csdn.net/zhaoruixiang1111/article/details/79185927 为了学一个矩阵树定理 从行列式开始学(就当提前学线代了.. 论文生成树的 ...
- BZOJ5297 [Cqoi2018]社交网络 【矩阵树定理】
题目链接 BZOJ5297 题解 最近这玩意这么那么火 这题要用到有向图的矩阵树定理 主对角线上对应入度 剩余位置如果有边则为\(-1\),不然为\(0\) \(M_{i,i}\)即为以\(i\)为根 ...
- 算法复习——矩阵树定理(spoj104)
题目: In some countries building highways takes a lot of time... Maybe that's because there are many p ...
随机推荐
- 安装python虚拟运行环境,linux下轻松切换python2和python3
一.查询系统采用的python版本 $ python --version Python 3.7.3 系统采用的python版本为3.7.3 以下查询py3和py2的目录: $ which python ...
- 笔记-redis安装
笔记-redis安装配置 1. redis安装配置 1.1. windows环境安装 win8已有redis 查看版本:redis-server –version 想更新到5.0.0, ...
- 笔记-scrapy-pipeline
笔记-scrapy-pipeline 1.简介 scrapy抓取数据后,使用yield发送item对象至pipeline,pipeline顺序对item进行处理. 一般用于: 清洗,验证,检查数据: ...
- <s:submit> 指定的method方法不执行
很多文章在讲一个表单多个提交方法的时候都是在<s:submit>中通过method来指定,但是我在试验中怎么也不对,jsp页面代码如下 <%@page import="or ...
- Kali Linux 搜狗输入法安装
1.下载 搜狗输入法 for Linux http://pinyin.sogou.com/linux/ //有64位和32位的deb包 我这里下载的是 : sogoupinyin_2.1.0.0086 ...
- [bzoj3196][tyvj1728]普通平衡树
真是太差了,到现在才打出一个平衡树的板子.. 感谢blackjack大佬提供的数组版treap板子!!基本完全照搬,blackjack太神啦! 但目前我只会这几个最基本的操作(说白了STL的(mult ...
- CSS3 loading效果全
梦想天空 关注前端开发技术 ◆ 推动 HTML5 & CSS3 技术发展 ◆ 本博客全新站点:yyyweb.com 欢迎围观:) 首页 管理 订阅 网页设计 JavaScript jQuery ...
- Ajax异步与JavaScript的一些初浅认识
向服务器请求数据的技术 有以下五种常用技术用于向服务器请求数据 XMLHttpRequest(XHR) Dynamic script tag insertion(动态脚本标签插入) iframes C ...
- 【情人节礼物】纯js脚本打造精美3D玫瑰
情人节就要来临了,这是用代码做出的玫瑰花,这才是程序员送给女友的最好情人节礼物...(提示:在不同浏览器下观看效果.速度会有很大的不同) 代码如下: <!doctype html> < ...
- webdriver--定位一组元素+iframe表单切换
定位一组元素:find_elements,返回的是list,所以可以用列表的索引对列表里的某个元素操作,也可以用for循环访问list,依次操作各元素 driver.find_elements_by_ ...