Luogu P10812

news/2024/9/19 14:14:22/文章来源:https://www.cnblogs.com/yaosicheng124/p/18417280

题目描述

给定一根 \(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.hqwc.cn/news/798657.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

爬虫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进行了验证,…

Xcode 16 正式版发布下载 - Apple 平台 IDE

Xcode 16 (16A242d) - Apple 平台 IDEXcode 16 (16A242d) - Apple 平台 IDE IDE for iOS/iPadOS/macOS/watchOS/tvOS/visonOS 请访问原文链接:https://sysin.org/blog/apple-xcode-16/,查看最新版。原创作品,转载请保留出处。The SDKs it contains are:iOS 18.0 (Build 22A3…

凡人歌:平凡公司的技术面试

我们见惯了大厂刷题面试宝典,大佬们只招世界上最优秀的人新闻。我们也乐见这些金字塔顶端给大家洒下的热点鸡汤。而现实却是平凡的小公司才是主流。我们见惯了大厂刷题面试宝典,大佬们只招世界上最优秀的人新闻。我们也乐见这些金字塔顶端给大家洒下的热点鸡汤。而现实却是平…

攻防世界 ————新手模式适合作为桌面 misc

(本篇文章参考大佬的解题) 下载附件,得到rar的的压缩包,解压缩,打开文件后有一张图片:打开图片发现什么也没有:使用软件Stegsolve打开图片看有什么问题:点击下一页:点击后发现有一个二维码:把他保存下来,使用软件扫码看看里面有什么: (我是用微信扫码的) 出现了十…

代码整洁之道--读书笔记(11)

代码整洁之道简介: 本书是编程大师“Bob 大叔”40余年编程生涯的心得体会的总结,讲解要成为真正专业的程序员需要具备什么样的态度,需要遵循什么样的原则,需要采取什么样的行动。作者以自己以及身边的同事走过的弯路、犯过的错误为例,意在为后来者引路,助其职业生涯迈上更…