D P- 免费馅饼

题目

都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameboy马上卸下身上的背包去接。但由于小径两侧都不能站人,所以他只能在小径上接。由于gameboy平时老呆在房间里玩游戏,虽然在游戏中是个身手敏捷的高手,但在现实中运动神经特别迟钝,每秒种只有在移动不超过一米的范围内接住坠落的馅饼。现在给这条小径如图标上坐标:
这里写图片描述
为了使问题简化,假设在接下来的一段时间里,馅饼都掉落在0-10这11个位置。开始时gameboy站在5这个位置,因此在第一秒,他只能接到4,5,6这三个位置中其中一个位置上的馅饼。问gameboy最多可能接到多少个馅饼?(假设他的背包可以容纳无穷多个馅饼)

Input

输入数据有多组。每组数据的第一行为以正整数n(0 < n < 100000),表示有n个馅饼掉在这条小径上。在结下来的n行中,每行有两个整数x,T(0< T <100000),表示在第T秒有一个馅饼掉在x点上。同一秒钟在同一点上可能掉下多个馅饼。n=0时输入结束。

output

每一组输入数据对应一行输出。输出一个整数m,表示gameboy最多可能接到m个馅饼。
提示:本题的输入数据量比较大,建议用scanf读入,用cin可能会超时。

Sample Input

6
5 1
4 1
6 1
7 2
7 2
8 3
0

分析

先画个草图把题目意思搞懂。本题涉及到时间和不同时间可能掉落的位置,由于0秒时在坐标5处,所以第一秒可能在4 5 6,把可能的情况表示出来,
如图所示是在相应秒能接到的位置
这里写图片描述

下图是可能落下的位置
这里写图片描述

因此建立二维数组存不同秒的位置
从下往上看,0秒位置5可能接到最多数量馅饼
那就类似数字三角形,从下往上推,c[i][j]表示i时刻在坐标j出最多能接到的馅饼数,它等于自身加上max(正下方的最大馅饼数,左下方的最大馅饼数,右下方的最大馅饼数)。最后输出0秒位置5的馅饼数

状态转移方程:

c[i][j]+=max(c[i+1][j-1],c[i+1][j],c[i+1][j+1]);
c[i][0]+=max(c[i+1][0],c[i+1][1]);
c[i][10]+=max(c[i+1][10],c[i+1][9]);

代码

#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
int ma(int a,int b,int c)
{int m;m=a>b?a:b;m=m>c?m:c;return m;
}
int c[100001][11];
int main()
{int i,j,n,a,b;while(scanf("%d", &n) && n){int m=0;memset(c,0,sizeof(c));for(i=0;i<n;i++){scanf("%d%d", &a, &b);c[b][a]++;if(m<b)m=b;}for(i=m-1;i>=0;i--){for(j=1;j<=9;j++)c[i][j]+=ma(c[i+1][j-1],c[i+1][j],c[i+1][j+1]);c[i][0]+=max(c[i+1][0],c[i+1][1]);c[i][10]+=max(c[i+1][10],c[i+1][9]);}printf("%d\n",c[0][5]) ;      }return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560939.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android+录像中截图软件下载,录屏截图大师app

录屏截图大师app是一款专业录屏软件&#xff0c;不少用户可能会有使用手机录屏的需求&#xff0c;尤其是在手机内置没有录屏功能的时候&#xff0c;这款软件就非常值得大家考虑&#xff0c;支持自定义设置录屏的大小和画质&#xff0c;还没有水印&#xff0c;还支持后期的简单编…

python随机函数笔记_Python笔记__random

random模块提供了随机数相关的一些函数&#xff0c;所有函数都绑定在一个random.Random类的实例上&#xff0c;所以&#xff0c;你可以直接用模块级的函数random.xxx()&#xff0c;也可以random.Random().xxx()。random.random(): 随机生成一个[0.0, 1.0)范围内的浮点数。是下面…

一加桌面3.0 android8,一加手机XRemix6.0安卓8.1.0Beta2.0定制本地化增强适配归属农历等...

制作者&#xff1a;moonlight-roms基于版本&#xff1a;remix最新安卓8.1.0代码适合机型&#xff1a;一加手机X双网版/全网通版/E1001/E1003等/onyx注意事项&#xff1a;1.开机后语言设置&#xff1a;Settings-system-languageandinput-添加一个中文需要并拖动到第一行设置为默…

震惊!Fibonacci Again

题目 There are another kind of Fibonacci numbers: F(0) 7, F(1) 11, F(n) F(n-1) F(n-2) (n>2). Input Input consists of a sequence of lines, each containing an integer n. (n < 1,000,000). Output Print the word “yes” if 3 divide evenly into …

jumpserver 使用教程_Jumpserver之快速入门

一&#xff0c;系统设置1.1基本设置修改 url 的"localhost"为你的实际 url 地址, 否则邮件收到的地址将为"localhost" 也无法创建新用户1.2邮件设置1.3终端设置保持默认设置即可1.4安全设置根据需要设置二.用户管理2.1创建jumpserver用户#点击页面左侧&quo…

华为鸿蒙手机和电视通话,鸿蒙智慧屏首秀:逾10万人预定,电视视频通话功能强大...

原标题&#xff1a;鸿蒙智慧屏首秀&#xff1a;逾10万人预定&#xff0c;电视视频通话功能强大上周五&#xff0c;大家期待已经的华为开发者大会正式召开&#xff0c;华为鸿蒙系统在这一天对外发布。历时数年&#xff0c;经过几千人的研发&#xff0c;终于正式落地。曾经&#…

震惊! Leftmost Digit

题目 Given a positive integer N, you should output the leftmost digit of N^N. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contain…

ladp3 获取属性_Ldap3库使用方法(四)

#!/usr/bin/env python# -*- coding: utf-8 -*-import jsonfrom ldap3 import ALL_ATTRIBUTES# 注意&#xff1a;ldap3库如果要使用tls(安全连接)&#xff0c;需要ad服务先安装并配置好证书服务&#xff0c;才能通过tls连接&#xff0c;否则连接测试时会报LDAPSocketOpenError(…

两文本一图片android,Android富文本编辑器(二):图文混排以及图片上传处理

对于一个富文本编辑器来说&#xff0c;图文混排是最基本的功能。而从上一篇文章中我们知道图文混排需要使用ImageSpan。下面这段代码摘自我的RichEditText源码&#xff1a;/*** 添加图片* param filePath 图片文件路径*/public void addImage(String filePath) {SpannableStrin…

qt添加菜单纯代码_Qt Creator 插件开发(3):添加菜单项

本章我们将学习如何向 Qt Creator 的菜单栏添加内容。在上一章插件的基础之上&#xff0c;我们将尝试开发一个比较正式的插件——在菜单栏中可以看到&#xff0c;并且可以相应用户动作等。在我们开始之前&#xff0c;我们先来看看 Qt Creator 已有的菜单&#xff1a;Qt Creator…

android添加hidl,android hidl

1、定义.hal接口文件&#xff0c;如&#xff1a;在vendor/sprd/interface中新建目录hello&#xff0c;其中定义好hidl接口&#xff0c;如&#xff1a;1 package [email protected]1.0;23 interfaceIHello {45 helloWorld(string name) generates (stringresult);67 };2、利用hi…

震惊! Rightmost Digit 快速幂解决

题目 Given a positive integer N, you should output the most right digit of N^N. Input The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case conta…

rrpp协议如何修改_RRPP协议

产生背景在网络规划和实际组网应用中&#xff0c;大多采用环网来提供高可靠性。环网技术简单来说&#xff0c;就是将一些网络设备通过环的形状连接到一起&#xff0c;实现相互通信的一种技术。为了避免环网中产生广播风暴&#xff0c;最初采用了已被普遍应用的STP协议环路保护机…

android handler同步,android解决:使用多线程和Handler同步更新UI

如果运行时&#xff0c;可以看到滚动条由条慢慢变短&#xff0c;则说明程序成功了。截图如下&#xff0c;建议选择大点的文件做测试。main.xmlxmlns:android"http://schemas.android.com/apk/res/android"android:layout_height"wrap_content" android:id&…

hashmap hash冲突怎么解决_HashMap原理及冲突之简谈

了解HashMap原理对于日后的缓存机制多少有些认识。在网络中也有很多方面的帖子&#xff0c;但是很多都是轻描淡写&#xff0c;很少有把握的比较准确的信息&#xff0c;在这里试着不妨说解一二。对于HashMap主要以键值(key-value)的方式来体现&#xff0c;笼统的说就是采用key值…

html5把六张图片做成立方体,HTML5绘制在立方体上的几何曲线图形

CSS语言&#xff1a;CSSSCSS确定body {background: #222;width: 100vw;height: 100vh;overflow: hidden;-webkit-filter: blur(1px);filter: blur(1px);box-sizing: border-box;-webkit-perspective: 3000px;perspective: 3000px;}.cube {position: absolute;width: 250px;heig…

c语言中闰年 日期 天数 统计出在某个特定的年份中,出现了多少次既是13号又是星期五的情形

常识&#xff1a; 1、3、5、7、8、10、12月份&#xff0c;每个月31天。2月闰年有29天&#xff0c;非闰年28天其他月份&#xff0c;每月30天 闰年&#xff1a;一年有365天&#xff0c;闰年有366天&#xff0c;所谓闰年&#xff0c;即能被4整除且不能被100整除的年份&#xff0c…

java有啥区别 jsp_Java与JSP有什么区别

Java与JSP的区别有&#xff1a;1、Java是面向对象编程语言&#xff0c;而JSP是一个建立在Java基础上用于开发动态内容的web页面技术&#xff1b;2、Java负责逻辑业务处理&#xff0c;而JSP负责页面展现等等。【推荐课程&#xff1a;Java教程】JAVA是一种编程语言&#xff0c;可…

c++ stl 容器 迭代器 stl用法示例

1.基本概念 1.1容器概述 顺序容器 vector, deque,list关联容器 set, multiset, map, multimap容器适配器 stack, queue, priority_queue 1.1.1迭代器 用于指向顺序容器和关联容器中的元素迭代器用法和指针类似 有const 和非 const两种通过迭代器可以读取它指向的元素通过非…

python julian date_Python 的内嵌time模板翻译及说明

一、简介time模块提供各种操作时间的函数 说明&#xff1a;一般有两种表示时间的方式: 第一种是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的 第二种以数组的形式表示即(struct_time),共有九个元素&#xff0c;分别表示&#xff0c;同一个时间戳的st…