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. gradle构建

    https://blog.csdn.net/baidu_30809315/article/details/77865414

  2. mac虚拟机上(centos系统)怎样实现共享本机文件

    首先加载vboxadditions,可以从https://download.virtualbox.org/virtualbox/下载,记得一定要跟virtualBox版本对应 然后打开virtualb ...

  3. iframe 如何让它展现内容自适应高度

    引用: <iframe id="ifm1" runat="server" src="/comment/page1?id=@productId&q ...

  4. Adaptive Boosting

    Boosting boosting和bagging很类似,所使用的多个分类器类型都是一致的.另外,他们的主要区别点如下: boosting中不同的分类器是通过串行得到的,每个分类器都是根据已经训练出来 ...

  5. 第五章 Internet协议

    写在开头: 埋头学习也差不多半个月了,达到了这半个月每天都会去图书馆的目标.确实挺忙的,不管在学习上,部门社团上,党建上.有时候为了多学一些总是会挤掉了其他事情的一些时间.但是自己时刻提醒着自己不要太 ...

  6. c#中onclick事件请求的两种区别

    在C#中如果是asp控件的button有两个click的调用,一个是OnClick,一个是OnClientClick.那么这两者有什么区别呢,下面就来说说区别. <asp:Button ID=& ...

  7. Yum只更新安全补丁的方法

    当大家想只给RHEL系统更新安全补丁的时候,往往会把其他一些无用的组件给更新下来,现在就给大家说下怎么只更新安全补丁而又不更新其他组件. 1.安装yum插件即可:   yum install yum- ...

  8. Java Nio注意事项

    Selector  : public abstract class Selector extends Object SelectableChannel 对象的多路复用器. 可通过调用此类的 open ...

  9. 求强连通块_Tarjan算法_C++

    好久没有写算法了,就放一个 Tarjan 上来凑凑数哈 强连通块由若干个点组成,任意点与点之间可以之间或间接到达,显然可以看作一个环 下面是伪代码 强记:dfn为时间不变,low取最小,下一个dfn有 ...

  10. (转)python 模块安装包 制作

    转自: http://testerhome.com/topics/539 用过python的同学对于python setup.py install肯定不会陌生.那么我们自己如果封装了很多的方法怎么很好 ...