【问题描述】

Tom现在已经成为一个游戏里的重要人物。

这个游戏界面包含一行N个方格,N个方格用1到N的数字表示。Nikola开始是在1号位置,然后能够跳到其他的位置,Tom的第一跳必须跳到2号位置。随后的每一跳必须满足两个条件:

1.如果是向前跳,必须比前面一跳多跳一个方格。

2.如果是向后跳,必须和前面一跳一样远。

比如,在第一跳之后(当在2号位置时),Tom能够跳回1号位置,或者向前跳到4号位置。

每次他跳入一个位置,Tom必须支付相应的费用,Tom的目标是从1号位置尽可能便宜地跳到N号位置。

请你写一个程序,看看Tom跳到N号位置需要的最少花费是多少。

【输入格式】

输入一共有N+1行

第1行:包含一个整数N(2<=N<=1000),它是位置的数量

第2-N+1行:第i+1行表示第i个方格的费用,是一个正整数(不超过500)。

【输出格式】

输出一个参数,表示Tom跳到N号位置时需要的最少花费。

【输入样例1】                                         【输入样例2】

6                                                             8

1 2 3 4 5 6                                              2 3 4 3 1 6 1 4

【输出样例1】                                         【输出样例2】

12    【2-1-3-6】                                    14      【2-4-7-4-8】

这道题楼楼第一反应就是回溯暴力……然后……华丽丽地70……【暴力不可取,但骗分很关键】

这道题正解就是DP,阶段性强和N的取值范围说明复杂度应该是O(n^2),所以想到DP就很简单了。

状态转移方程:从上个格子往前跳到当前第i格:f[ i ][ j ]=min( f[ i ][ j ], f[ i - j ][ j - 1 ]+value[ i ])

从上个格子向后跳到当前第i格:f[ i ][ j ]=min( f[ i ][ j ], f[i + j][ j ]+value[ i ])

最后对于所有的位于第n个格子的状态取min就是答案

下面是程序:

   #include<bits/stdc++.h>using namespace std;const int N=1e3+50,INF=0x3f3f3f3f;int n,val[N],f[N][N];int main(){cin>>n;for(int i=1;i<=n;++i)cin>>val[i];memset(f,0x3f,sizeof(f));f[1][0]=0;for(int st=1;st<=n;++st){for(int i=st+1;i<=n;++i)f[i][st]=min(f[i][st],f[i-st][st-1]+val[i]);for(int i=n-st;i>=1;--i)f[i][st]=min(f[i][st],f[i+st][st]+val[i]);}int ans=INF;for(int i=1;i<=n;++i){ans=min(ans,f[n][i]);}cout<<ans;return 0;}

NOIP模拟 跳格子(Nikola)(DP)相关推荐

  1. 2018.10.26 NOIP模拟 瓶子 (dp/贪心)

    传送门 正解是dp并不想去想了. 自己yy了一个贪心拿了95pts95pts95pts,唯一没过的点还只有一个地方错了,面向数据变成之后过啦! 所以我讲讲如何贪心. 考虑到最后都只会合并成一种颜色,所 ...

  2. NOIP模拟 color(DP)

    额呵呵naive [题目分析] 这道题强行让所有的变为最小值都能拿到95分233333333333 因为都是将一个瓶子的值赋给另一个,那么我们可以枚举最后的值. 所以一个瓶子要变化为我们枚举的值,要么 ...

  3. 入门OJ 3793: [Noip模拟题]剪草 (DP)

    题目 Description 有N棵小草,编号0至N-1.奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H.在第0时刻,第i棵小草的高度是h[i],接下 ...

  4. NOIP模拟 蛋糕(DP+Dilworth定理)

    QAQ [题目分析] 谁能告诉我为什么我的网络流炸了吗........(我相信是SPJ的锅这年头暴力不好打啊) 所以我们按x排序,然后就是要找到序列中严格上升序列的最少个数,然后....duang.. ...

  5. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  6. NOIP 好题推荐(DP+搜索+图论)POJ ZOJ

    NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS)  1090 Chain ->格雷码和二进制码 ...

  7. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  8. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

  9. NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望

    NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...

最新文章

  1. pr 文件结构不一致_建筑工程合同与招投标文件不一致,工程结款应该以哪份文件为主?...
  2. hdu 3006(状态压缩)
  3. Grid Coloring(AtCoder-2687)
  4. python获得距离指定(x,y)固定距离的全部坐标点
  5. detectron2训练自己的数据集_TensorFlow2学习十五、使用VGG16模型训练自己的数据集...
  6. VS中Eric觉得好用的快捷键
  7. linux java运行class文件_jvm学习java文件运行过程
  8. 计算机组装小游戏,电脑组装店游戏
  9. 卡耐基梅隆大学 计算机信息管理,CMU-喜报!G同学成功收到2017-Fall 卡耐基梅隆大学 计算机信息技术硕士AD一枚...
  10. CryEngine ViewMat
  11. Onlyoffice不打开文档的情况下下载正在编辑的文档
  12. 数字IC秋招手撕代码(二)50%占空比的三分频
  13. Code_Aster comm命令文件结构与说明(by Yang 2017.3.30)
  14. eclipse的使用操作技巧
  15. 状态报告:Ceylon TypeScript Loader GSoC项目
  16. 中国软件行业待遇问题
  17. 用HBuild生成APP启动页面准备
  18. Nothing is impossble_七夕小子_新浪博客
  19. 前端vue基于onlyoffice实现在线预览
  20. 助力泵嗡嗡响解决方法_怎么解决转向助力泵嗡嗡响

热门文章

  1. C++ | 对C的增强(一)
  2. OpenStack私有云安配置
  3. 总结:linux笔记-003
  4. Android获取本机IP地址,绝对可行
  5. 报录比48:1,上海985同济大学去年计算机考研报录比好高!
  6. greenlet基础了解
  7. 操作系统第一章知识点小结
  8. iOS Cocoapods APP 使用教程
  9. 一套开源的自动化立体仓库WMS系统,源码分享
  10. 计算机考研856学校,18届北京科技大学856环境学姐,目前已录取,分享一下考研经...