NOIP模拟 跳格子(Nikola)(DP)
【问题描述】
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)相关推荐
- 2018.10.26 NOIP模拟 瓶子 (dp/贪心)
传送门 正解是dp并不想去想了. 自己yy了一个贪心拿了95pts95pts95pts,唯一没过的点还只有一个地方错了,面向数据变成之后过啦! 所以我讲讲如何贪心. 考虑到最后都只会合并成一种颜色,所 ...
- NOIP模拟 color(DP)
额呵呵naive [题目分析] 这道题强行让所有的变为最小值都能拿到95分233333333333 因为都是将一个瓶子的值赋给另一个,那么我们可以枚举最后的值. 所以一个瓶子要变化为我们枚举的值,要么 ...
- 入门OJ 3793: [Noip模拟题]剪草 (DP)
题目 Description 有N棵小草,编号0至N-1.奶牛Bessie不喜欢小草,所以Bessie要用剪刀剪草,目标是使得这N棵小草的高度总和不超过H.在第0时刻,第i棵小草的高度是h[i],接下 ...
- NOIP模拟 蛋糕(DP+Dilworth定理)
QAQ [题目分析] 谁能告诉我为什么我的网络流炸了吗........(我相信是SPJ的锅这年头暴力不好打啊) 所以我们按x排序,然后就是要找到序列中严格上升序列的最少个数,然后....duang.. ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- NOIP 好题推荐(DP+搜索+图论)POJ ZOJ
NOIP好题推荐(DP+搜索+图论)POJ ZOJ 1370 Gossiping (数论->模线性方程有无解的判断)+(图论->DFS) 1090 Chain ->格雷码和二进制码 ...
- NOIP模拟(10.22)T2 杆子的排列
杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...
- Noip 模拟练习5
Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...
- NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望
NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...
最新文章
- pr 文件结构不一致_建筑工程合同与招投标文件不一致,工程结款应该以哪份文件为主?...
- hdu 3006(状态压缩)
- Grid Coloring(AtCoder-2687)
- python获得距离指定(x,y)固定距离的全部坐标点
- detectron2训练自己的数据集_TensorFlow2学习十五、使用VGG16模型训练自己的数据集...
- VS中Eric觉得好用的快捷键
- linux java运行class文件_jvm学习java文件运行过程
- 计算机组装小游戏,电脑组装店游戏
- 卡耐基梅隆大学 计算机信息管理,CMU-喜报!G同学成功收到2017-Fall 卡耐基梅隆大学 计算机信息技术硕士AD一枚...
- CryEngine ViewMat
- Onlyoffice不打开文档的情况下下载正在编辑的文档
- 数字IC秋招手撕代码(二)50%占空比的三分频
- Code_Aster comm命令文件结构与说明(by Yang 2017.3.30)
- eclipse的使用操作技巧
- 状态报告:Ceylon TypeScript Loader GSoC项目
- 中国软件行业待遇问题
- 用HBuild生成APP启动页面准备
- Nothing is impossble_七夕小子_新浪博客
- 前端vue基于onlyoffice实现在线预览
- 助力泵嗡嗡响解决方法_怎么解决转向助力泵嗡嗡响