2018牛客多校第一场 B.Symmetric Matrix
题意:
构造一个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
![](/assets/blank.gif)
![](/assets/blank.gif)
#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相关推荐
- 2018牛客多校第一场 Monotonic Matrix (LGV引理)
链接:https://www.nowcoder.com/acm/contest/139/A 来源:牛客网 题目描述 Count the number of n x m matrices A satis ...
- 2019牛客多校第一场
2019牛客多校第一场 题号 题目 知识点 A Monotonic Matrix B Symmetric Matrix C Fluorescent 2 D Two Graphs E Removal F ...
- python字符串去重及排序 牛客_2018牛客多校第一场 D.Two Graphs
题意: n个点,m1条边的图E1,n个点,m2条边的图E2.求图E2有多少子图跟图E1同构. 题解: 用STL的全排列函数next_permutation()枚举映射.对于每一种映射枚举每一条边判断合 ...
- 2020 牛客多校第一场
2020 牛客多校第一场 A. B-Suffix Array 后缀数组的思想:倍增+桶排序的方式找出一串连续序列后缀的大小.虽说正常使用的时候都是字典序,但是只要修改排序方式,也能够达到一个类似的&q ...
- 【多校训练】2021牛客多校第一场
[前言] 组队训练的第一场比赛,感觉这场出题十分阴间,后面几个乱搞题根本不会.jpg 赛时只过了5题,rk123,学校参加5/8. A. Alice and Bob [题意] 两人博弈,每次一个人从一 ...
- [2020牛客多校第一场]Coda的题解集
被暴打了. 会先写比赛中过题数100+的题目,其他的以后再补. 施工中,未完待续- F Infinite String Comparision 一开始想到的是对比到lcm(|a|,|b|),意料之中T ...
- 2019年牛客多校第一场B题 Integration 定积分 裂项相消
题目链接: https://ac.nowcoder.com/acm/contest/881/B 题解: 转发一个大佬的博客,裂项相消,很容易看懂. https://blog.csdn.net/dill ...
- FFT ---- 2021牛客多校第一场 H Hash Function
题目链接 题目大意: 解题思路: 首先我们知道任意两个数%seed\%seed%seed都不相同→\rightarrow→(aj−ai)%seed≠0(∀ai≤aj)(a_j-a_i)\%seed\n ...
- 线段树 ---- 2021牛客多校第一场 J Journey among Railway Stations [线段树维护区间可行性判断]
题目链接 题目大意: 一段路上有 NNN 个点,每个点有一个合法时间段[ui,vi][u_i,v_i][ui,vi],相邻两个点有一个长度wiw_iwi.有qqq次询问,每次询问,在 [ui,v ...
最新文章
- SpaceX龙飞船发射之后:在人类探索太空的征途中,深度学习能做什么?
- 关于mybatis的参数2个使用经验(类似于struts2的通配所有页面的action配置,xmlsq语句参数类型为基本类型时的快捷指定办法)...
- c# 自定义控件使其填充方格且自动变换大小
- MongoDB数据库的下载与Python交互
- 2. 两数相加(中等)
- Flex与Javascript交互
- 将Java类作为子进程运行
- Cloud一分钟 | 马云发表致股东的公开信;5G算什么?中国已着手研究6G相关工作...
- UIActionSheet与UIAlertView
- SQL Server 2008 (R2) 单机版安装的先决条件
- 精通Android开发 0
- C语言字母O和数字0怎么区分,车牌数字“0”和字母“O”究竟如何区分?看完终于弄明白了...
- 用Python网络爬虫来看看最近电影院都有哪些上映的电影
- 配置服务器pytorch/TensorFlow环境+远程连接vscode
- ios 各种动画机制
- logic原理图板框制作
- 快速抠图工具-InPixio Photo Eraser
- AndroidStudio运行app,会装上多个app
- vlan与vxlan
- Mysql快速备份_sql备份
热门文章
- iview表格嵌套Tooltip
- RabbitMQ-1 Helloword
- 去哪儿网2018春招软件开发工程师、前段开发工程师编程题 - 题解
- [HDU3037]Saving Beans,插板法+lucas定理
- [转载]什么是 Design Hackathon?
- DataGrid多层表头设计
- mysql 1031错误_为什么我的mysql语句一直报错,找不到错误,望各位大佬指点一番...
- Apache 虚拟主机
- (74)信号发生器DDS三角波设计(二)(第15天)
- (32)System Verilog模块调用包中类的方法