题意:

  构造一个n*n的矩阵,使得Ai,i = 0,Ai,j = Aj,i,Ai,1+Ai,2+...+Ai,n = 2。求种类数。

题解:

  把构造的矩阵当成邻接矩阵考虑。

  那么所有点的度数都为2,且存在重边但不存在自环。这种情况的图为多个环,即每个点都在且仅在一个环里。

  考虑每次加一个点来递推dp[]。假设当前是第n个点,从前n-1个点中筛出(1~n-3)个点和第n个点形成环。

  设n-1个点中保留k个点,即筛出n-1-k个点和第n个点形成环。

  递推方程为:f(n) = (n-1)f(n-2)+sigma(k:2->n-3)C(n-1,k)f(k)(n-1-k)!/2;

  其中(n-1)f(n-2)为从n-1个点中筛出1个点的情况。C(n-1,k)为从n-1个点中筛出k个点的组合数(k表示保留的个数)。(n-1-k)!表示筛出的n-1-k个数与第n个数一共n-k个数构成环的种数。

  /2是因为去掉像1 2 3 4 和 1 4 3 2这种对称的情况。但是当k=1时就不用/2所以就把k=1的情况先写出来。

  然后就是化简递推方程。

  C(n-1,k)f(k)(n-1-k)!/2 = f(k)(n-1)!/k!/2

  f(n) = (n-1)f(n-2)+sigma(k:2->n-3)f(k)(n-1)!/k!/2

  (n-1)f(n-1) = (n-1)(n-2)f(n-3)+sigma(k:2->n-4)f(k)(n-1)!/k!/2

  减一下就变成:f(n) = (n-1)f(n-1)+(n-1)f(n-2)-(n-1)(n-2)f(n-3)/2

#include <bits/stdc++.h>
using namespace std;
const int N = 1e5+10;
typedef long long ll;
int n, m;
int dp[N];
int main() {while(~scanf("%d%d", &n, &m)) {dp[1] = 0; dp[2] = 1%m; dp[3] = 1%m;for(int i = 4; i <= n; i++) dp[i] = ((1ll*(i-1)*dp[i-1]%m+1ll*(i-1)*dp[i-2]%m-1ll*(i-1)*(i-2)/2*dp[i-3]%m)%m+m)%m;printf("%d\n", dp[n]);}
}

View Code

  

  

转载于:https://www.cnblogs.com/Pneuis/p/9341964.html

2018牛客多校第一场 B.Symmetric Matrix相关推荐

  1. 2018牛客多校第一场 Monotonic Matrix (LGV引理)

    链接:https://www.nowcoder.com/acm/contest/139/A 来源:牛客网 题目描述 Count the number of n x m matrices A satis ...

  2. 2019牛客多校第一场

    2019牛客多校第一场 题号 题目 知识点 A Monotonic Matrix B Symmetric Matrix C Fluorescent 2 D Two Graphs E Removal F ...

  3. python字符串去重及排序 牛客_2018牛客多校第一场 D.Two Graphs

    题意: n个点,m1条边的图E1,n个点,m2条边的图E2.求图E2有多少子图跟图E1同构. 题解: 用STL的全排列函数next_permutation()枚举映射.对于每一种映射枚举每一条边判断合 ...

  4. 2020 牛客多校第一场

    2020 牛客多校第一场 A. B-Suffix Array 后缀数组的思想:倍增+桶排序的方式找出一串连续序列后缀的大小.虽说正常使用的时候都是字典序,但是只要修改排序方式,也能够达到一个类似的&q ...

  5. 【多校训练】2021牛客多校第一场

    [前言] 组队训练的第一场比赛,感觉这场出题十分阴间,后面几个乱搞题根本不会.jpg 赛时只过了5题,rk123,学校参加5/8. A. Alice and Bob [题意] 两人博弈,每次一个人从一 ...

  6. [2020牛客多校第一场]Coda的题解集

    被暴打了. 会先写比赛中过题数100+的题目,其他的以后再补. 施工中,未完待续- F Infinite String Comparision 一开始想到的是对比到lcm(|a|,|b|),意料之中T ...

  7. 2019年牛客多校第一场B题 Integration 定积分 裂项相消

    题目链接: https://ac.nowcoder.com/acm/contest/881/B 题解: 转发一个大佬的博客,裂项相消,很容易看懂. https://blog.csdn.net/dill ...

  8. FFT ---- 2021牛客多校第一场 H Hash Function

    题目链接 题目大意: 解题思路: 首先我们知道任意两个数%seed\%seed%seed都不相同→\rightarrow→(aj−ai)%seed≠0(∀ai≤aj)(a_j-a_i)\%seed\n ...

  9. 线段树 ---- 2021牛客多校第一场 J Journey among Railway Stations [线段树维护区间可行性判断]

    题目链接 题目大意: 一段路上有 NNN 个点,每个点有一个合法时间段[ui,vi][u_i,v_i][ui​,vi​],相邻两个点有一个长度wiw_iwi​.有qqq次询问,每次询问,在 [ui,v ...

最新文章

  1. SpaceX龙飞船发射之后:在人类探索太空的征途中,深度学习能做什么?
  2. 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)...
  3. c# 自定义控件使其填充方格且自动变换大小
  4. MongoDB数据库的下载与Python交互
  5. 2. 两数相加(中等)
  6. Flex与Javascript交互
  7. 将Java类作为子进程运行
  8. Cloud一分钟 | 马云发表致股东的公开信;5G算什么?中国已着手研究6G相关工作...
  9. UIActionSheet与UIAlertView
  10. SQL Server 2008 (R2) 单机版安装的先决条件
  11. 精通Android开发 0
  12. C语言字母O和数字0怎么区分,车牌数字“0”和字母“O”究竟如何区分?看完终于弄明白了...
  13. 用Python网络爬虫来看看最近电影院都有哪些上映的电影
  14. 配置服务器pytorch/TensorFlow环境+远程连接vscode
  15. ios 各种动画机制
  16. logic原理图板框制作
  17. 快速抠图工具-InPixio Photo Eraser
  18. AndroidStudio运行app,会装上多个app
  19. vlan与vxlan
  20. Mysql快速备份_sql备份

热门文章

  1. iview表格嵌套Tooltip
  2. RabbitMQ-1 Helloword
  3. 去哪儿网2018春招软件开发工程师、前段开发工程师编程题 - 题解
  4. [HDU3037]Saving Beans,插板法+lucas定理
  5. [转载]什么是 Design Hackathon?
  6. DataGrid多层表头设计
  7. mysql 1031错误_为什么我的mysql语句一直报错,找不到错误,望各位大佬指点一番...
  8. Apache 虚拟主机
  9. (74)信号发生器DDS三角波设计(二)(第15天)
  10. (32)System Verilog模块调用包中类的方法