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 ...
随机推荐
- PHP 面向对象 static 和 self 的区别
一.前言 php是世界上最好的语言 php从面向过程走到现在成熟的面向对象体系, 在php面向对象中,静态变量的调用我们可以用这两个self::method和 static::method, 但是很多 ...
- hosts 文件的位置及作用
一.位置 1.Window系统位置 C:\Windows\System32\drivers\etc 2.Linux系统位置 /etc/hosts 二.作用 综述:Hosts文件中指定了域名和IP地址的 ...
- PHP 二维数组按某一个键值排序
一.前言 在某个项目中,需要读取某个文件夹下的所有文件,在本地的 Windows 环境下时,读取出来的二维数组的文件名称和在 Windows 文件夹的文件排序一致, 但是项目上线后,环境为 Linux ...
- Educational Codeforces Round 37 E. Connected Components?(图论)
E. Connected Components? time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 神经网络的训练和测试 python
承接上一节,神经网络需要训练,那么训练集来自哪?测试的数据又来自哪? <python神经网络编程>一书给出了训练集,识别图片中的数字.测试集的链接如下: https://raw.githu ...
- 013---Django的分页器
知识预览 分页 Django的分页器(paginator) view from django.shortcuts import render, HttpResponsefrom app01.model ...
- 17-比赛2 C - Maze (dfs)
Pavel loves grid mazes. A grid maze is an n × m rectangle maze where each cell is either empty, or i ...
- POJ :3614-Sunscreen
传送门:http://poj.org/problem?id=3614 Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissio ...
- Oozie是什么
Apache Oozie Workflow Scheduler for Hadoop Oozie is a workflow scheduler system to manage Apache Had ...
- 洛谷P1605 迷宫
迷宫 题目链接 这道题就是一道简单的dfs计方案数qwq. 我的思路是把表初始化为1,再将障碍改为0,因为在全局定义中数组会直接初始化为0,所以就少去了对边界的特判. next数组加循环可以减少代码量 ...