2020蓝桥杯国赛J题-质数行者题解

这篇博客介绍了蓝桥杯国赛中J题——质数行者的解题思路,主要涉及动态规划和算法优化。通过预处理dp数组,计算在数轴上不同步数的走法,再利用二维两维计算降低时间复杂度至O(n^2)。在求解过程中,还需考虑排除经过特殊点的方案,并在特定条件下加回被误删的重复方案。

题目链接:https://www.lanqiao.cn/problems/1027/learning/
思路:
首先观察题干中对走法不同的定义:稍作停留的集合不同。
所以可以考虑这么一个DP定义。
在数轴上dp[i][j]dp[i][j]dp[i][j]代表从111出发到iii共走了jjj步的方案数
方案数大概是n22\frac{n^2}{2}2n2(因为最小的质数是2)
转移的复杂度大概是小于等于i的质数数量,大概是log2ilog_2ilog2i
预处理dpdpdp数组的时间大概是5e75e75e7
然后我们考虑从dp数组出发得到答案。
假设此时我们先不考虑经过两个特殊点的情况。
假设第一维我们要走x步,第二维要走y步,第三步要走z步。
对应到dp数组里就是dp[n][x],dp[m][y],dp[w][z]dp[n][x],dp[m][y],dp[w][z]dp[n][x],dp[m][y],dp[w][z]
P=dp[n][x]∗dp[m][y]∗dp[w][z]P=dp[n][x]*dp[m][y]*dp[w][z]P=dp[n][x]dp[m][y]dp[w][z]
我们可以发现方案数是P∗(x+y+z)!x!y!z!P*\frac{(x+y+z)!}{x!y!z!}Px!y!z!(x+

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值