1 条题解
-
0
自动搬运
来自洛谷,原作者为

翼德天尊
2019-09-26 ~ 2024-03-03搬运于
2025-08-24 21:30:32,当前版本为作者最后更新于2020-03-20 21:05:59,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
首先,让我们分析一下题意,提炼后如下:
1.次数 > 1;
2.V后一秒 > V前一秒;
3.跑n圈。
理清了思路,还有一个问题,用什么方法做这题?
1.DFS(深搜),炸时间,取消;
2.BFS(广搜),依旧炸时间,取消;
3.暴力,当然更不行;
于是,
经过了漫长的思考,我们决定——出来吧,
皮卡丘DP动规!什么是动规?
动规,全称动态规划 指动态地演变每一步,类似著名的斐波那契数列: 末路等于来路之和…… 实现过程即为开一个足够的数组,然后模拟每一步,最终答案为数组的第n项。 时间复杂度:低话不多说,上AC代码!
#include<bits/stdc++.h>//棒棒哒头文件 using namespace std; long long n,ans[501]; //分别为总圈数n以及动规数组,动规数组的第i个下标表示前i圈的方案总数 int main(){ scanf("%d",&n);//输入 ans[0]=1;//第0项暂时设为1,保证数据来源(相当于借的) for (int i=1;i<=n;i++){//模拟前i圈 for (int j=n;j>=i;j--){//模拟前i圈中每一圈的演变过程 ans[j]+=ans[j-i];//第i圈是由它的前i圈(1~i)演变而来 } } //DP结束 cout<<ans[n]-1<<endl;//完美输出 return 0;//习惯性 好习惯撒花 }不知道你看懂了没有呢,你看这里也没发双击666,不如直接“以赞代6”吧!
谢谢诸位捧场啦!!!
- 1
信息
- ID
- 776
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者