链接:https://icpcarchive.ecs.baylor.edu/index.php?

option=com_onlinejudge&Itemid=8&page=show_problem&problem=4611

题意:给一个N*N个点的矩阵(N<=6)。每一个点仅仅能和周围八个点相连,问有多少种生成树的方式。

思路:题里给的非常明确。就是列一个每一个点的边的矩阵,然后求子矩阵的行列式就能够了,由于N仅仅有6,所以打表就能够了。

打表代码:

#include <algorithm>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <ctype.h>
#include <iostream>
#include <map>
#include <queue>
#include <set>
#include <stack>
#include <string>
#include <vector>
#define eps 1e-8
#define INF 0x7fffffff
#define PI acos(-1.0)
#define seed 31//131,1313
typedef long long LL;
typedef unsigned long long ULL;
using namespace std;
#define MOD 1000
#define maxn 40
#define maxm 40
struct Matrix
{
int n,m;
double a[maxn][maxm];
void change(int c,int d)
{
n=c;
m=d;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
a[i][j]=0;
}
void Copy(const Matrix &x)
{
n=x.n;
m=x.m;
for(int i=0; i<n; i++)
for(int j=0; j<m; j++)
a[i][j]=x.a[i][j];
}
void build(int n)
{
change(n*n,n*n);
for(int i=0; i<n*n; i++)
{
if(i%n!=0)
{
a[i][i-1]=-1;
a[i-1][i]=-1;
a[i][i]++;
a[i-1][i-1]++;
}
if(i%n!=0&&i/n!=0)
{
a[i][i-n-1]=-1;
a[i-n-1][i]=-1;
a[i][i]++;
a[i-n-1][i-n-1]++;
}
if(i%n!=0&&i/n!=n-1)
{
a[i][i+n-1]=-1;
a[i+n-1][i]=-1;
a[i][i]++;
a[i+n-1][i+n-1]++;
}
if(i/n!=n-1)
{
a[i][i+n]=-1;
a[i+n][i]=-1;
a[i][i]++;
a[i+n][i+n]++;
}
}
}
double det()
{
for(int i=1; i<n; i++)
{
for(int j=0; j<i; j++)
if(a[i][j]!=0)
{
for(int k=j+1; k<m; k++)
a[i][k]-=(a[j][k]*a[i][j]/a[j][j]);
a[i][j]=0;
}
}
double ans=1;
for(int i=0; i<n-1; i++)
ans*=a[i][i];
return ans;
}
};
int main()
{
int t;
scanf("%d",&t);
Matrix A;
A.build(t);
printf("%.0f\n",A.det());
return 0;
}

AC代码:

int main()
{
char ss[10][40]={"1","16","17745","1064918960","3271331573452806","504061943351319050000000"};
int T;
scanf("%d",&T);
while(T--)
{
int a;
scanf("%d",&a);
puts(ss[a-1]);
}
}

UvaLive 6600 Spanning trees in a secure lock pattern 矩阵行列式的更多相关文章

  1. 【2018 ICPC亚洲区域赛徐州站 A】Rikka with Minimum Spanning Trees(求最小生成树个数与总权值的乘积)

    Hello everyone! I am your old friend Rikka. Welcome to Xuzhou. This is the first problem, which is a ...

  2. 多线程程序设计学习(7)read-write lock pattern

    Read-Write Lock Pattern[读写]一:Read-Write Lock Pattern的参与者--->读写锁--->数据(共享资源)--->读线程--->写线 ...

  3. Cs Round#54 D Spanning Trees

    题意:构造一张N个结点无重边.无自环的无向图.使得其最小生成树和最大生成树共享K条边. 样例一很具有启发性: 当K!=0时,我们可以先构造出一条链,链的长度为n-k的链,作为最小生成树的一部分,之后由 ...

  4. Minimum Spanning Trees

    Kruskal’s algorithm always union the lightest link if two sets haven't been linked typedef struct { ...

  5. 【CodeChef EDGEST】Edges in Spanning Trees(树链剖分+树上启发式合并)

    点此看题面 大致题意: 给你两棵\(n\)个点的树,对于第一棵树中的每条边\(e_1\),求存在多少条第二棵树中的边\(e_2\),使得第一棵树删掉\(e_1\)加上\(e_2\).第二棵树删掉\(e ...

  6. Gym102012A Rikka with Minimum Spanning Trees

    题意 \(T\) 组数据,每组数据给定一个 \(n\) 个点,\(m\) 条边,可能含有重边自环的图,求出最小生成树的个数与边权和的乘积,对 \(10^9+7\) 取模. \(\texttt{Data ...

  7. 【C++设计模式】单件类与DCLP(Double Check Lock Pattern)的风险

    [单件类] 保证只能有一个实例化对象,并提供全局的访问入口. [设计注意事项] 1.阻止所有实例化的方法: private 修饰构造函数,赋值构造函数,赋值拷贝函数. 2.定义单实例化对象的方法: a ...

  8. Android Lock Pattern 图案解锁

    参考链接:http://www.cnblogs.com/dyingbleed/archive/2012/12/03/2800007.html http://blog.csdn.net/way_ping ...

  9. CF917D. Stranger Trees & TopCoder13369. TreeDistance(变元矩阵树定理+高斯消元)

    题目链接 CF917D:https://codeforces.com/problemset/problem/917/D TopCoder13369:https://community.topcoder ...

随机推荐

  1. MySQL的concat以及group_concat的用法

    一.concat()函数 1.功能:将多个字符串连接成一个字符串. 2.语法:concat(str1, str2,...) 返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为nu ...

  2. 关于wdsl

    WSDL元素 WSDL元素基于XML语法描述了与服务进行交互的基本元素: Type(消息类型):数据类型定义的容器,它使用某种类型系统(如XSD). Message(消息):通信数据的抽象类型化定义, ...

  3. NodeJS学习笔记 (6)网络服务-http-res(ok)

    原文:https://github.com/chyingp/nodejs-learning-guide 自己敲代码: 概览 http模块四剑客之一的res,应该都不陌生了.一个web服务程序,接受到来 ...

  4. hdu 4496 并查集 逆向 并查集删边

    貌似某大犇说过 正难则反,,, 题目说要对这张图进行删边,然后判断联通块的个数,那么就可以先把所有边都删掉,之后从后往前加边,若加的边两端点不在同一个联通块中, 那么此时联通快个数少一,否则不变 #i ...

  5. Qt之滚动字幕

    简述 滚动字幕,也就是传说中的跑马灯效果. ​简单地理解就是:每隔一段时间(一般几百毫秒效果较佳)显示的文字进行变化(即滚动效果). 简述 实现 效果 源码 实现 利用定时器QTimer,在固定的时间 ...

  6. JavaScript(14)jQuery(JavaScript 库)

    JavaScript 框架(库) JavaScript 高级程序设计(特别是对浏览器差异的复杂处理),通常非常困难也非常耗时.为了应对这些调整,很多的 JavaScript (helper) 库应运而 ...

  7. hdu5105Math Problem(分类讨论)

    题目链接: huangjing 题目: 思路: 给出的是一个方程,首先讨论最高项系数. 1:a==0&& b==0  那么函数就是线性的.直接比較端点就可以. 2   a==0& ...

  8. Java (JDK7)中的String常量和String.intern的实现

    在java中有constantPool常量池,常量池里存放的是类,方法,接口的等常量,而对于存放字符串常量通常存放的符号链接Symbol 或者真实的String的对象的引用. 我们来看一段简单的代码和 ...

  9. BsonDocument

    http://api.mongodb.com/csharp/current/html/T_MongoDB_Bson_BsonDocument.htm 如何取出document中的数据 BsonDocu ...

  10. ThinkPHP5中find()和select()区别

    ThinkPHP5中find()和select()区别 读取数据是指读取数据表中的一行数据(或者关联数据),主要通过find方法完成,例如: 1 2 3 4 $User = M("User& ...