题目大意:

  给一个n×m的网格,“.”表示可联通,求该网格可构成的生成树个数在1E9的剩余系中的结果。(n,m<=9)

题解:

  忘了删注释WA了两遍……

  直接建图+MartrixTree定理即可。

代码:

  

 #include "bits/stdc++.h"

 using namespace std;

 typedef long long ll;

 const int N=;

 ll a[N][N];

 int n,mod=1e9;

 inline ll det(){
ll res=;
for(int i=;i<n;++i){
if(!a[i][i]){
bool flag=false;
for(int j=i+;j<n;++j){
if(a[j][i]){
flag=true;
for(int k=i;k<n;++k) swap(a[i][k],a[j][k]);
res=-res;
break;
}
}
if(!flag) return ;
}
for(int j=i+;j<n;++j){
while(a[j][i]){
ll t=a[i][i]/a[j][i];
for(int k=i;k<n;++k){
a[i][k]=(a[i][k]-t*a[j][k])%mod;
swap(a[i][k],a[j][k]);
}
res=-res;
}
}
res*=a[i][i];
res%=mod;
}
if(res<) res+=mod;
return res;
} int main(){
int r,c;
scanf("%d%d",&r,&c);
char mp[][];
int s[][],xx[]={,,-,},
yy[]={,-,,};
memset(s,-,sizeof(s));
for(int i=;i<=r;++i)
scanf("%s",mp[i]+);
for(int i=;i<=r;++i)
for(int j=;j<=c;++j) if(mp[i][j]=='.')
s[i][j]=n++;
for(int i=;i<=r;++i)
for(int j=;j<=c;++j) if(s[i][j]!=-)
for(int k=;k<;++k){
int x=i+xx[k],y=j+yy[k];
if(x>&&y>&&x<=r&&y<=c){
if(s[x][y]!=-){
x=s[x][y],y=s[i][j];
a[x][y]=-,a[y][x]=-;
++a[y][y];
} }
}
--n;
printf("%lld\n",det());
}

最新文章

  1. Flux 普及读本
  2. php N 维数组的读取、设置、删除
  3. 图片Base64编码
  4. C#微信公众号接口开发,灵活利用网页授权、带参数二维码、模板消息,提升用户体验之完成用户绑定个人微信及验证码获取
  5. stm32cube--通用定时器--输入捕获
  6. Android表单UI及相应控件的事件处理
  7. cocos2d-x之首选项数据初试
  8. Good Bye 2013
  9. AngularJS~大话开篇
  10. Learning WCF Chapter 3 Bindings One-Way and Duplex Communication
  11. OpenGL ES 2.0 shader开发
  12. LR11关联问题
  13. 在word 2010中采用EndNote X7插入引用
  14. 利用FutureTask进行超时设置方法
  15. 2.3.3 Button(按钮)与ImageButton(图像按钮)
  16. python scrapy 调试模式
  17. http请求头中的Content-Type属性在angular 和 node中的用法
  18. 一、Mosquitto 介绍&amp;安装
  19. 20145312 实验二《 Java面向对象程序设计》
  20. poj1182 食物链 带权并查集

热门文章

  1. ionic1 sqlite的添加使用
  2. form表单提交转为可被 getModel(PROJECT.class ,null);接收
  3. IT轮子系列(二)——mvc API 说明文档的自动生成——Swagger的使用(一)
  4. Oracle官方文档学习路线图
  5. JSP指令与动作
  6. Visual Studio 2017 15.7 下的.NET Core
  7. python爬虫入门(八)Scrapy框架之CrawlSpider类
  8. jieba库词频统计练习
  9. ubuntu16+zabbix3.4+grafana环境搭建记录
  10. 树莓派配置watchdog