题目描述

有一种图形叫做五角形圈。一个五角形圈的中心有1个由n个顶点和n条边组成的圈。在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形。这些五角形只在五角形圈的中心的圈上有公共的顶点。如图0所示是一个4-五角形圈。
现在给定一个n五角形圈,你的任务就是求出n五角形圈的不同生成树的数目。还记得什么是图的生成树吗?一个图的生成树是保留原图的所有顶点以及顶点的数目减去一这么多条边,从而生成的一棵树。
注意:在给定的n五角形圈中所有顶点均视为不同的顶点。

输入

输入包含多组测试数据。第一行包含一个正整数T,表示测试数据数目。每组测试数据包含一个整数n( 2<=N<=100),代表你需要求解的五角形圈中心的边数。

输出

对每一组测试数据,输出一行包含一个整数x,表示n五角形圈的生成树数目模2007之后的结果。

样例输入

1
2

样例输出

40


题解

矩阵树定理

看到无向图生成树个数,直接裸上矩阵树定理就好了(好像本题还有组合数学法)。

需要注意的是由于2007不是质数,因此需要辗转相除。

另外当n=2时由于某些特殊原因需要特判。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int mod = 2007;
int a[410][410];
int main()
{
int T;
scanf("%d" , &T);
while(T -- )
{
memset(a , 0 , sizeof(a));
int n , i , j , k , t , ans = 1 , d = 0;
scanf("%d" , &n) , n <<= 2;
if(n == 8)
{
puts("40");
continue;
}
for(i = 1 ; i <= n ; i ++ )
{
a[i][(i + 1) % n] = a[(i + 1) % n][i] = -1 , a[i][i] = 2;
if(i % 4 == 1) a[i][i] = 4 , a[i][(i + 4) % n] = a[(i + 4) % n][i] = -1;
}
for(i = 1 ; i < n ; i ++ )
{
for(j = i ; j < n ; j ++ )
if(a[j][i])
break;
if(j == n) continue;
if(j != i)
{
d ^= 1;
for(k = i ; k < n ; k ++ ) swap(a[i][k] , a[j][k]);
}
for(j = i + 1 ; j < n ; j ++ )
{
while(a[j][i])
{
t = a[j][i] / a[i][i];
for(k = i ; k < n ; k ++ ) a[j][k] = (a[j][k] - a[i][k] * t % mod + mod) % mod;
if(!a[j][i]) break;
d ^= 1;
for(k = i ; k < n ; k ++ ) swap(a[i][k] , a[j][k]);
}
}
}
for(i = 1 ; i < n ; i ++ ) ans = ans * a[i][i] % mod;
if(d) ans = (mod - ans) % mod;
printf("%d\n" , ans);
}
return 0;
}

【bzoj2467】[中山市选2010]生成树 矩阵树定理的更多相关文章

  1. [bzoj2467][中山市选2010]生成树_快速幂

    生成树 bzoj-2467 中山市选2010 题目大意:题目链接 注释:略. 想法:首先,考虑生成树的性质.每两个点之间有且只有一条路径.我们将每个五边形的5条边分为外面的4条边和内部的一条边,在此简 ...

  2. 2019.01.02 bzoj2467: [中山市选2010]生成树(矩阵树定理)

    传送门 矩阵树定理模板题. 题意简述:自己看题面吧太简单懒得写了 直接构建出这4n4n4n个点然后按照题面连边之后跑矩阵树即可. 代码: #include<bits/stdc++.h> # ...

  3. bzoj2467: [中山市选2010]生成树

    Description 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角 ...

  4. [BZOJ2467] [中山市选2010] 生成树 (排列组合)

    Description 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角 ...

  5. BZOJ 2467: [中山市选2010]生成树 [组合计数]

    2467: [中山市选2010]生成树 Time Limit: 5 Sec  Memory Limit: 128 MBSubmit: 638  Solved: 453[Submit][Status][ ...

  6. BZOJ_2467_[中山市选2010]生成树_数学

    BZOJ_2467_[中山市选2010]生成树_数学 [Submit][Status][Discuss] Description 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成 ...

  7. BZOJ 2467: [中山市选2010]生成树(矩阵树定理+取模高斯消元)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2467 题意: 思路:要用矩阵树定理不难,但是这里的话需要取模,所以是需要计算逆元的,但是用辗转相减会 ...

  8. BZOJ 2467: [中山市选2010]生成树

    有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边组成的圈.在中心的这个n边圈的每一条边同时也是某一个五角形的一条边,一共有n个不同的五角形.这些五角形只在五角形圈的中心的圈上有公共的 ...

  9. BZOJ 2467 [中山市选2010]生成树(组合数学)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=2467 [题目大意] 有一种图形叫做五角形圈.一个五角形圈的中心有1个由n个顶点和n条边 ...

随机推荐

  1. [论文理解]SSD:Single Shot MultiBox Detector

    SSD:Single Shot MultiBox Detector Intro SSD是一套one-stage算法实现目标检测的框架,速度很快,在当时速度超过了yolo,精度也可以达到two-stag ...

  2. 2018.4.22 深入理解Java的接口和抽象类

    前言 对于面向对象编程来说,抽象是他的一大特征之一.在Java中,可以通过两种形式来体现oop 的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初雪的时候会以为他们可以随意互 ...

  3. 查看nvidia的GPU

    nvidia-smi就可以查看,可以看到进程的占用率,可以kill杀掉进程 注意这里的-前后都不要空格,连起来写

  4. 安全错误使用CORS在IE10与Node和Express及XMLHttpRequest: 网络错误 0x4c7, 操作已被用户取消

    在IE下:VUE项目,后台替换为https请求之后,vue热更新请求挂起,控制台报错:XMLHttpRequest: 网络错误 0x4c7, 操作已被用户取消.但是chrome与Firefox正常 当 ...

  5. 关于List的remove方法我遇到的坑

    结果是下标越界异常,原因是remove方法的参数不是value,而是index 唉~~~  年少轻狂啊

  6. Bootstrap历练实例:标签页内的下拉菜单

    <!DOCTYPE html><html><head><meta http-equiv="Content-Type" content=&q ...

  7. C#基础-数组

    数组定义 定义数组并赋值 int[] scores = { 45, 56, 78, 98, 100 }; //在定义数组时赋值 for(int i = 0; i < scores.Length; ...

  8. 根据参数优化nginx的服务性能

    一.优化nginx服务的worker进程数 在高并发.高访问量的Web服务场景,需要事先启动好更多的nginx进程,以保证快速响应并处理大量并发用户的请求. 1).优化nginx进程对应的配置 优化n ...

  9. VMware虚拟网卡介绍和使用说明

    介绍VMware三种网络连接模式的详细配置及规则 版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址: https://www.cnblogs.com/poterliu/p/9455391 ...

  10. phpExcel使用方法一

    include 'PHPExcel.php'; include 'PHPExcel/Writer/Excel2007.php'; //或者include 'PHPExcel/Writer/Excel5 ...