Link:

BZOJ 4031 传送门

Solution:

矩阵树定理的模板题

看完下面两篇文章就会啦:

周冬论文:https://wenku.baidu.com/view/872eb02de2bd960590c677c6.html

WerKeyTom_FTD的严谨证明%%%:https://blog.csdn.net/WerKeyTom_FTD/article/details/54914530

Code:

//by NewErA
#include <bits/stdc++.h> using namespace std;
typedef long long ll;
const ll MOD=1e9; const int MAXN=*;
char dat[MAXN][MAXN];
ll pos[MAXN][MAXN],a[MAXN][MAXN],n,m,cnt=; int dx[]={,-,,};
int dy[]={,,,-}; ll det(ll x)
{
for(int i=;i<=x;i++)
for(int j=;j<=x;j++)
a[i][j]=(a[i][j]+MOD)%MOD;
ll ret=,f=;
for(int i=;i<=x;i++)
{
for(int j=i+;j<=x;j++)
{
ll A=a[i][i],B=a[j][i];
while(B!=)
{
ll t=A/B;A%=B;swap(A,B);
for(int k=i;k<=x;k++)
a[i][k]=(a[i][k]-t*a[j][k]%MOD+MOD)%MOD;
for(int k=i;k<=x;k++)
swap(a[i][k],a[j][k]);
f=-f;
}
}
if(!a[i][i]) return ;
ret=ret*a[i][i]%MOD;
}
if(f==-) return (-ret+MOD)%MOD;
else return ret%MOD;
} int main()
{
cin >> n >> m;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
{
cin >> dat[i][j];
if(dat[i][j]=='.') pos[i][j]=++cnt;
} for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(dat[i][j]=='.')
{
for(int k=;k<;k++)
{
int fx=i+dx[k],fy=j+dy[k];
if(fx< || fx>n || fy< || fy>m || dat[fx][fy]!='.') continue;
a[pos[i][j]][pos[i][j]]++;
a[pos[i][j]][pos[fx][fy]]--;
}
}
cout << det(cnt-);
return ;
}

[BZOJ 4031] 小Z的房间的更多相关文章

  1. bzoj 4031: 小Z的房间 矩阵树定理

    bzoj 4031: 小Z的房间 矩阵树定理 题目: 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时 ...

  2. 【刷题】BZOJ 4031 [HEOI2015]小Z的房间

    Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子是一个房间或者是一个柱子.在一开始的时候,相邻的格子之间都有墙隔着. ...

  3. [BZOJ 4031][LOJ 2122][HEOI 2015] 小Z的房间

    [BZOJ 4031][LOJ 2122][HEOI 2015] 小Z的房间 题意 给定一个 \(n\times m\) 的矩阵, 一些格子是障碍, 相邻的格子(四联通)之间可以连边, 求把非障碍的格 ...

  4. bzoj 4031: [HEOI2015]小Z的房间 轮廓线dp

    4031: [HEOI2015]小Z的房间 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 98  Solved: 29[Submit][Status] ...

  5. 【BZOJ 4031】 4031: [HEOI2015]小Z的房间 (Matrix-Tree Theorem)

    4031: [HEOI2015]小Z的房间 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1089  Solved: 533 Description ...

  6. BZOJ 4031: [HEOI2015]小Z的房间 高斯消元 MartixTree定理 辗转相除法

    4031: [HEOI2015]小Z的房间 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=4031 Description 你突然有了一个 ...

  7. 【BZOJ-4031】小z的房间 Matrix-Tree定理 + 高斯消元解行列式

    4031: [HEOI2015]小Z的房间 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 937  Solved: 456[Submit][Statu ...

  8. 【BZOJ4031】小Z的房间(矩阵树定理)

    [BZOJ4031]小Z的房间(矩阵树定理) 题面 BZOJ 洛谷 Description 你突然有了一个大房子,房子里面有一些房间.事实上,你的房子可以看做是一个包含n*m个格子的格状矩形,每个格子 ...

  9. [HEOI2015]小Z的房间 && [CQOI2018]社交网络

    今天看了一下矩阵树定理,然后学了一下\(O(n ^ 3)\)的方法求行列式. 哦对了,所有的证明我都没看-- 这位大佬讲的好呀: [学习笔记]高斯消元.行列式.Matrix-Tree 矩阵树定理 关于 ...

随机推荐

  1. Python全栈工程师(文件操作、编码)

    ParisGabriel                每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰     Python人工智能从入门到精通 最近简直要死了 发烧感冒 喉咙痛..... ...

  2. 设计模式之模板方法模式 templateMethod

    代码实现 public abstract class BankTemplateMethod { //具体方法 public void takeNumber(){ System.out.println( ...

  3. leetcode 211. 添加与搜索单词 - 数据结构设计 解题报告

    设计一个支持以下两种操作的数据结构: void addWord(word) bool search(word) search(word) 可以搜索文字或正则表达式字符串,字符串只包含字母 . 或 a- ...

  4. Python namedtuple(命名元组)使用实例

    Python namedtuple(命名元组)使用实例 #!/usr/bin/python3 import collections MyTupleClass = collections.namedtu ...

  5. table内容超出宽度时隐藏并显示省略标记

    HTML中,一个表格,要达到二个条件: 1.内容多了不自动换行: 2.固定单元格宽度.如果内容超出,则隐藏: 如 果在IE下,只是写成<table style="table-layou ...

  6. linux备忘录-基本命令

    基本命令 将命令分类为获取信息类,文件管理类,目录管理类,文本处理类,系统类,工具类. 获取信息类 uname # 输出所有信息 # 一行输出,空格分割 uname -a # 输出内核名称 uname ...

  7. linux安装软件的几种方法

    一.rpm包安装方式步骤: 1.找到相应的软件包,比如soft.version.rpm,下载到本机某个目录: 2.打开一个终端,su -成root用户: 3.cd soft.version.rpm所在 ...

  8. 【bzoj5056】OI游戏 最短路+矩阵树定理

    题目描述 给出一张无向图,求满足 0号点到所有点的路径长等于原图中它们之间最短路 的生成树的个数. 输入 第一行一个整数N,代表原图结点. 接下来N行,每行N个字符,描绘了一个邻接矩阵.邻接矩阵中, ...

  9. 【bzoj3831】[Poi2014]Little Bird 单调队列优化dp

    原文地址:http://www.cnblogs.com/GXZlegend/p/6826475.html 题目描述 In the Byteotian Line Forest there are   t ...

  10. P1023 税收与补贴问题

    题目背景 每样商品的价格越低,其销量就会相应增大.现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递 ...