Luogu P10812

news/2024/9/23 5:19:40

题目描述

给定一根 \(1\)\(N\) 的数轴。一开始有一个棋子在 \(N\)。每次棋子 \(x\) 可以跳到 \(x-1,x+1\)\(x\) 的因子处(不能超出 \(1\)\(N\))。

每个点只能到达一次。求棋子到达 \(1\) 的方案数。

思路

由于求倍数比因子简单,所以把问题变成从 \(1\)\(N\),每次跳倍数。

我们可以发现,棋子的行走路径由两种类型的路拼在一起:

image

由于有先跳倍数再 \(-1\) 的跳法,此时跳的倍数必须大于走过的最远的位置,所以状态中要记录最远走到哪里。

\(dp_{i,j}\) 表示当前在 \(i\),最远走到了 \(j\) 的方案数。

\(i=j\) 时,我们有转移 \(dp_{i+1,i+1}\leftarrow dp_{i,j}\)

当然我们也可以跳倍数,也就是对于每个 \(k=i\cdot m(m>1)\),那么都有转移 \(dp_{x,k}\leftarrow dp_{i,j}(j<x\le k)\)

而这种转移可以使用前缀和维护。

空间复杂度 \(O(N^2)\),时间复杂度 \(O(N^2\log N)\)

代码

#include<bits/stdc++.h>
using namespace std;const int MAXN = 5005;int n, MOD, dp[MAXN][MAXN], sum[MAXN][MAXN];int main() {ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);cin >> n >> MOD;dp[1][1] = 1;for(int i = 1; i <= n; ++i) {for(int j = i; j <= n; ++j) {sum[j][i] = sum[j][i] + sum[j][i - 1] - (sum[j][i] + sum[j][i - 1] >= MOD ? MOD : 0);//cout << sum[j][i] << " \n"[j == n];dp[i][j] = dp[i][j] + sum[j][i] - (dp[i][j] + sum[j][i] >= MOD ? MOD : 0);//cout << dp[i][j] << " \n"[j == n];if(i == j) {dp[i + 1][max(i + 1, j)] = dp[i + 1][max(i + 1, j)] + dp[i][j] - (dp[i + 1][max(i + 1, j)] + dp[i][j] >= MOD ? MOD : 0);}for(int k = 2 * i; k <= n; k += i) {if(k > j) {sum[k][j + 1] = sum[k][j + 1] + dp[i][j] - (sum[k][j + 1] + dp[i][j] >= MOD ? MOD : 0);}}}}cout << dp[n][n];return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/61353.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

爬虫cookie的使用

cookie是一种由网站创建并存储在用户计算机上的小型文本文件。访问该网站时由浏览器返回给服务器。cookie主要作用是帮助网站记住用户信息,包括但不限于:会话管理,网站使用cookie识别用户的会话,以便用户在浏览网站时不需要重复登录。 个性化体验,通过存储用户的偏好设置,…

unity人工智能游戏、源码、教程(中秋特别版),完全免费和开源

三维虚拟世界的人工智能对话。 完全免费、完全开源、完整详细、通俗易懂。 我把游戏、游戏源码、教程(三合一)放到了夸克网盘: 链接:https://pan.quark.cn/s/65e22d51c1bb任何人不要和我说话,我不想跟任何人说话,因为我对现实世界的人类不感兴趣。谁跟我说话,我都不会理…

校招前的思考

又有了一次参加校招的机会,我希望校招这种活动,自己每参加一次,都能加深一次理解。校招前,我想思考清楚一个问题:企业为什么要校招?又有了一次参加校招的机会,我希望校招这种活动,自己每参加一次,都能加深一次理解。校招前,我想思考清楚一个问题:企业为什么要校招?…

江锐第一次作业

这个作业属于哪个课程 https://edu.cnblogs.com/campus/zjlg/rjjc这个作业的目标 学习博客园的基本知识,并介绍自己,自我认知姓名-学号 江锐-2022329301014一、个人简介 (1)基本信息 姓 名: 江锐 物 理 家 乡:湖北武汉 专 业: 电气工程及其自动化 网 络 家 乡:github,…

中秋快乐

最近北京的天气真不错 昨天出门,傍晚天渐渐黑了,抬头看见好圆整的月亮,才意识到中秋到了,没啥课天天放假已经对工作日假期没啥概念了。 祝大家中秋快乐! Lemon越听越很上头,特别是2019年演唱会版真的很有感觉, 还能学习一波假名。 又有点想去演唱会了,上次还是工体Shane…

白云龙期货投资-第七讲

10种经典的进出场方法2 2B法则跌破第三波上涨就以此为依据进场做空2B法则进场法操作要点 1,适合行情已经走完5浪: 2,跌破或突破5浪前高低点(次高低点)有效; 3,止损:次高低点与新高低点的二分之一处; 10种经典的进出场方法3 金牛断角射击之星金牛断角进场法操作要点 1,最好…

pikachu靶场的代码审计,和一些危险函数

对pikachu靶场进行代码审计,审计分析文件上传、命令执行漏洞,越权漏洞,sql注入,xxe漏洞 文件上传 client:并未对后缀进行判断,只对大小做了验证后端并未进行文件的类型校验,仅仅是生成了一个目录去保存上传的文件同时对文件的保存路径暴露 MIME Type只对mime进行了验证,…