免费馅饼<简单版> hzoi-tg#211 题目重构

题目描述

有一种叫做“免费馅饼”的游戏:游戏在一个舞台上进行。舞台的宽度为 \(W\) 格,高度为 \(H\) 格,游戏者占一格。开始时游戏者站在舞台的正中央。如图 为高度为 \(4\) 格时某一个时刻游戏者接馅饼的情景。
游戏开始后,从舞台顶端的格子中不断出现馅饼并垂直下落。游戏者左右移动去接馅饼。游戏者每秒可以向左或向右移动一格或两格,也可以站在原地不动。
馅饼有很多种,游戏者事先根据自己的口味,对各种馅饼依次打了分。同时,各种馅饼下落的速度也是不一样的,下落速度以 格/秒 为单位。
当馅饼在某一秒末恰好到达游戏者所在的格子中,游戏者就收集到了这块馅饼。
写一个程序,帮助我们的游戏者收集馅饼,使得所收集馅饼的分数之和最大。

注意事项

  1. 游戏者的高度为 \(1\) 而不是 \(0\) . 当一个馅饼高度为 \(4\) 时,它只需要走 \(3\) 就能到达.
  2. 馅饼在某一秒末恰好到达,意味着馅饼的速度需要恰好被下落高度整除.

输入格式

输入文件的第一行是用空格隔开的两个正整数,分别给出了舞台的宽度 \(W\) ( $ 1 \le W \le 100 $, 且 \(W\) 为奇数 )和高度 \(H\)( $ 1 \le H \le 100 $ )。

接下来依馅饼的初始下落时间顺序给出了所有馅饼的信息。每一行给出了一块馅饼的信息。由四个正整数组成,分别表示了馅饼的初始下落时刻 ( $0 \le t \le 1000 $ ),水平位置、下落速度 ( \(1 \le l,v \le 100\) ) 以及分值。游戏开始时刻为 \(0\) 。从 \(1\) 开始自左向右依次对水平方向的每格编号。

输入文件中同一行相邻两项之间用空格隔开。

输出格式

一个正整数,表示所收集的最大分数之和。

样例

样例输入
3 3
0 1 2 5 
0 2 1 3
1 2 1 3
1 3 1 4
样例输出
12
posted @   HaneDaniko  阅读(22)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?
点击右上角即可分享
微信分享提示