3628: [JLOI2014]天天酷跑

Time Limit: 20 Sec  Memory Limit: 128 MB
Submit: 121  Solved: 44
[Submit][Status][Discuss]

Description

在游戏天天酷跑中,最爽的应该是超级奖励模式了吧,没有一切障碍,可以尽情的吃金币,现在请你控制游戏角色来获得尽可能多的分数。
游戏界面离散为一个长度为1~n,高度为1~m(初始点为(0,1))的矩阵图。每个格子上都有收益(-1~1000),-1表示该点不能通过。游戏角色从起点一路奔跑向终点,中途可以跳跃来获得更高的分数,在空中还能进行连跳。游戏开始前你可以设定跳跃的高度,以及能连跳的次数,初始跳跃高度为1,连跳数为1(最多为5),升级跳跃高度和连跳都需要一定的花费。跳跃高度设定完后游戏角色每次跳跃高度都将固定,连跳必须在下落过程中可以使用。所有操作都将在整点上完成,需要保证设定完的跳跃高度及连跳数,无法跳出游戏高度上限。

以下是连跳数为2连跳,跳跃高度为2的跳跃方案:

Input

第一行四个整数n,m,cost1,cost2。n,m如题意所示,cost1,cost2分别表示每升一级跳跃高度,连跳数所需的花费。

接下来m行,每行n个数。第i行第j个数表示地图中高度为i,长度在第j列处的收益。

Output

如果无法跑出终点线,就输出“mission failed”,否则输出一行三个数,分别表示最大收益;及最大收益时,最小的连跳数;最大收益,最小连跳数时,最小的跳跃高度。

Sample Input

7 4 6 10
9 4 7 7 4 3 2
18 8 9 4 15 12 4
19 2 4 7 10 18 12
8 1 13 14 16 0 14

Sample Output

67 1 2

HINT

提示

20%数据满足 m=2, n<=100000;

另有80%数据 n<=10000,2<m<=20,其中20%数据 2<n<=10,m<=10;

/*定义状态f[i][j][o]表示处于x,y这个位置,还剩余o次连跳数的最大收益如果是跑——f[i][j][o]=max(f[i][j+1][o]+w[i][j]) w[i][j]为这点的权值;如果是跳的话——f[i][j][o]=max(f[i+跳跃高度(high)][j+high][o--]+hhh+w[i][j]) hhh跳跃上升过程中得到的金币数。
*/
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
using namespace std;
#define inf 1<<30
#define maxn 100010
bool vis[25][maxn][6];
int f[25][maxn][6],map[25][maxn];
int n,m,c1,c2,ans=-inf,ans1,ans2,h,num;
int dfs(int x,int y,int now){if(x>n)return 0;if(map[y][x]==-1)return -inf;if(vis[y][x][now])return f[y][x][now];int tot=-inf,sum=0;bool flag=1;if(y==1)now=0;if(now<num){for(int i=1;i<h;i++){if(map[y+i][x+i]==-1){flag=0;break;}sum+=map[y+i][x+i];}if(flag)tot=max(tot,sum+dfs(x+h,y+h,now+1));}if(y==1)tot=max(tot,dfs(x+1,y,0));if(y>1)tot=max(tot,dfs(x+1,y-1,now));vis[y][x][now]=1;f[y][x][now]=tot+map[y][x];return f[y][x][now];
}
int main(){scanf("%d%d%d%d",&n,&m,&c1,&c2);for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)scanf("%d",&map[i][j]);for(num=1;num<=5;num++){for(h=1;h*num<m;h++){memset(f,-1,sizeof(f));memset(vis,0,sizeof(vis));int tot=dfs(0,1,m)-c2*(num-1)-c1*(h-1);if(ans<tot)ans=tot,ans1=num,ans2=h;}}if(ans>0)printf("%d %d %d",ans,ans1,ans2);else printf("mission failed");return 0;
}

转载于:https://www.cnblogs.com/thmyl/p/7485186.html

Bzoj3628: [JLOI2014]天天酷跑相关推荐

  1. 用 Python 写一个天天酷跑,在线摸鱼不烦恼

    来源丨Python小二 写出来的效果图就是这样了: 下面就更新一下全部的代码吧~ 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 12 ...

  2. 用Java实现天天酷跑(附源码),这个真的有点强了!

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 作者:MyHuey https://blog.csdn.n ...

  3. 不敢相信,居然用Java写了个“天天酷跑”!

    作者 | MyHuey 来源 | https://blog.csdn.net/qq_45909299 首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯 ...

  4. 用Java实现天天酷跑(附源码),只能用牛逼来形容了!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 作者:M ...

  5. java窗体添加背景图片_Java项目实战之实战之天天酷跑(四):游戏主界面

    接上文,本文将实现游戏主界面,功能如下: 移动的背景图片.动态的玩家.玩家的移动功能.五种障碍物持续出现.玩家和障碍物的碰撞.暂停.继续功能. 首先,看一下整体效果: 动图实在太大,几秒钟的 Gif ...

  6. element 密码输入框用*显示_用 Java 实现天天酷跑,这个真的有点强了

    一.登录界面 界面功能需求图如下: 接下来我们再做一些准备工作:导入相关图片素材. 将天天酷跑的图片(Image)资源解压到桌面后,(Image文件如下图所示:) 复制到Eclipse中,单击src, ...

  7. awt jtable 多线程加载图片_Java项目实战之天天酷跑(三):缓冲加载游戏界面

    前文,我们完成了开始游戏界面的搭建.本文将实现缓冲加载界面的搭建.并搭建与前面俩界面间的桥梁.实现输入正确用户名密码后,进入开始游戏界面,点击开始游戏按钮后,进入缓冲加载界面的功能. 界面示意图: 具 ...

  8. 天天酷跑php源码_使用Java实现天天酷跑(附源码)

    首先,写一个需求文档: 一.项目名称:<天天酷跑>(RunDay) 二.功能介绍: 闯关类游戏,玩家登录后,选择进入游戏,通过键盘控制玩家的上下左右移动,来躲避 障碍物和吃金币,玩家躲避的 ...

  9. 安卓添加滚轮代码_[按键精灵手机版教程]安卓实战——制作天天酷跑脚本(2)...

    金猪脚本(原飞猪脚本)以按键精灵教学为主,涉及UiBot,Python,Lua等脚本编程语言,教学包括全自动办公脚本,游戏辅助脚本,引流脚本,网页脚本,安卓脚本,IOS脚本,注册脚本,点赞脚本,阅读脚 ...

最新文章

  1. 解决 javax.servlet.jsp.JspException cannot be resolved to a type的问题
  2. [unix shell笔记] - 和find命令结合使用xargs命令
  3. access开发精要(3)-子数据表
  4. 操作系统实验报告10:线程1
  5. java完全解耦_java-完全解耦 - osc_bc7dotjc的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. pandas dataframe按行或列求和
  7. VS2010中使Unity3d的shader文件关键字高亮
  8. 力扣530. 二叉搜索树的最小绝对差(JavaScript)
  9. sublime text 3的组合快捷键汇总
  10. 如何在一个bat批处理文件中调用另一个bat批处理文件?
  11. python词云可视化视频_Python数据分析-可视化-wordcloud词云
  12. ln 硬链接和软链接
  13. 常见的meta标签用法
  14. Python爬虫介绍
  15. 叶俊——“新零售·新未来”米友圈第九届全国精英总裁班授课圆满落幕
  16. Win7网络修复,winsock/tcpip
  17. mac下如何将adobe acrobat reader dc设为.pdf的默认打开方式?
  18. 原根(知识学习+板子总结+例题+应用)
  19. html 下拉框高度,如何自定义设置select下拉框高度的优化方法
  20. 自定义 View 之实现九宫格锁屏效果

热门文章

  1. php获取随机图片,PHP 随机显示某张图片
  2. 开发转运维有什么好点的理由_芜湖好点的团购社区费用
  3. u6系统服务器启动不了,u6链接不到服务器
  4. 鸿蒙系统有无隐私空间,华为鸿蒙OS系统有隐私空间功能吗 华为p40使用鸿蒙系统体验评测...
  5. Java show两个整数加减_怎么样用java编写界面实现两个数的加法运算
  6. python中xpath定位下拉菜单_Selenium2+Python3.6实战(八):定位下拉菜单出错,如何解决?用select或xpath定位。...
  7. python正则表达式快速入门_Python学习笔记——正则表达式入门
  8. 华清实训的收获(人工智能的小广告和福利)
  9. [Spark]PySpark入门学习教程---介绍(1)
  10. 训练神经网络适合使用交叉熵(cross_entropy)错误率,而不是分类错误率或是均方差