求C题分析过程

链接:https://ac.nowcoder.com/acm/contest/5389/C
来源:牛客网

题目描述

牛牛即将要参加考试,他学会了填答题卡。

可惜他竖着的答题卡填成了横着的 : (

好奇的他想知道对于 n 道题,每道题 n 个选项的答题卡 ( n * n 的矩阵 ),满足横答题卡和竖答题卡图形一致的方案数有多少种。

注:每道题只能选择一个选项,即 n * n 的矩阵中只能涂黑 n 个空。求横竖对称的方案数。


输入描述:

第一行给出 n。

输出描述:

输出方案数,答案对 109+710^9+7109+7 取模
示例1

输入


3

输出


4

说明

备注:

对于 50%50\;\%50% 的数据有 n≤10n \leq 10n10 对于 100%100\;\%100% 的数据有 n≤105n\le 10^5n105
全部评论
打表
点赞 回复 分享
发布于 2020-05-01 22:07
s1 =1 s2 = s1+1 x s0 s3 = s2 + (3-1) x s1 s4 = s3 + (4 - 1) x s2 s5 = s4 + (5 - 1) x s3 以这个思路,最后递归的总時間太長......🙃
点赞 回复 分享
发布于 2020-05-02 00:34
有点组合数学那味。计数问题最重要的就是对集合的划分要不重不漏吧。这个题我是这么划分的: 第一行一定要填一个位置。所以枚举第一行填的位置。 设f(x , k)为x*x的网格,第一行填涂第k位的方案数。那么答案就为f(x) = f(x,1) + ... + f(x , x). 若k = 1.那么第一行第一列都不能填了,问题化简成f(x - 1). k != 1 时,根据对称的要求,位置 (1 , k) 与 (k , 1) 都被填了.那么行和列都会少两个项。剩下来x - 2 行 x - 2 列。所以问题化简成f(x - 2)  .. 推荐画画图就出来了.  所以递推式为: f(x) = f(x - 1) + (x - 1) * f(x - 2).  然而比赛的时候并没有这么做细的分析。。。画画图就找得到递推式了.
点赞 回复 分享
发布于 2020-05-02 01:39
建议看每日一题4.29日的,那个题目就是这个的加强版,他每日一题讲的很详细的,这个题就只是点的可能性只有独立一点和二元无向环,那个每一题是多元环,分析方法是一样的
点赞 回复 分享
发布于 2020-05-02 07:29
把”对称“形式化表示一下,其实就是选两个点去匹配,然后递推统计匹配的方案数就行。
点赞 回复 分享
发布于 2020-05-02 07:54
https://ac.nowcoder.com/discuss/421720?type=101 题解里有很详细的分析
点赞 回复 分享
发布于 2020-05-02 22:21

相关推荐

不愿透露姓名的神秘牛友
11-24 20:55
阿里国际 Java工程师 2.7k*16.0
程序员猪皮:没有超过3k的,不太好选。春招再看看
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
安静的垂耳兔在泡澡:ks已经第八次投递了,它起码挂了还让你再投,不错了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务