hdu1176 免费馅饼 动态规划 二维数组实现

免费馅饼

Time Limit: 1000MS Memory Limit: 32768KB
Submit Statistic Discuss

Problem Description

都说天上不会掉馅饼,但有一天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可能会超时。

Example Input

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

Example Output

4

一开始写的超时代码:

/*
先按照时间顺序优先到后以及落得位置有小到大排好序,然后再依次进行比较
*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
struct st
{int p,t;
}a[100005],temp;
int cmp(st a,st b)
{return a.t<b.t;
}
int main()
{int t,q=0;while(scanf("%d",&t),t){q=0;for(int i=0;i<t;i++)scanf("%d%d",&a[i].p,&a[i].t);stable_sort(a,a+t,cmp);int l=0,_max=0,dp[100000]={0},k=0;for(int i=0;i<t-1;++i){for(int j=i+1;j<t&&i!=j;++j){if((a[j].p-a[i].p)>=-1&&(a[j].p-a[i].p)<=1&&(a[j].t-a[i].t)>=-1&&(a[j].t-a[i].t)<=1){k=1;dp[j]=dp[i]+1;}}}for(int i=0;i<t;i++)if(_max<dp[i])_max=dp[i];printf("%d\n",_max+k);}return 0;
}
后来用的是二维数组来写。
设a[i][j]为第i秒的j位置掉下的馅饼数量,f[i][j]为第i秒在j位置接馅饼最多可以接到的最多馅饼数量。由于每秒只能移动一个位置,因此这一状态可能由三种情况达到:
f[i - 1][j - 1]
f[i - 1][j]
f[i - 1][j + 1]
这三种情况中的最大值加上当前位置可以接到的馅饼数即是当前位置可以接到的最大馅饼数量:
f [ i ] [ j ] = max ( f [ i - 1 ] [ j - 1 ] , f [ i - 1 ] [ j ] , f [ i - 1 ] [ j + 1 ] ) + a [ i ] [ j ] ;
可以看出,当前状态与之前同一阶段的多个状态有关,而类似于 Ugly Numbers 等动态规划中的每一阶段都只有一个状态,为区分两者,我将它称为 二维动态规划 。当然,这道题只是二维动态规划中最简单的一种罢了。
#include<stdio.h>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
int dp[100005][12];
int main()
{int n,i,j,maxt;int x,t;while(scanf("%d",&n),n){maxt=0;memset(dp,0,sizeof(dp));for(i=0;i<n;i++){scanf("%d%d",&x,&t);dp[t][x]++;if(maxt<t)  maxt=t;}for(i=maxt-1;i>=0;i--){dp[i][0]+=max(dp[i+1][1],dp[i+1][0]);for(j=1;j<11;j++){dp[i][j]+=max(max(dp[i+1][j-1],dp[i+1][j]),dp[i+1][j+1]);}}printf("%d\n",dp[0][5]);}return 0;
}



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

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

相关文章

如何通过链路追踪进行定时任务诊断

背景简介 什么是定时任务 定时任务是业务应用系统中存在定时周期性运行的业务逻辑。由于其运行于后端进程中往往存在执行状态和执行链路的不可见性《常见定时任务技术方案》。 什么是链路追踪 随着分布式微服务化架构在企业中大规模运用&#xff0c;业务运行的应用平台是一…

关于平台工程的开发者工具链,你还想加点啥?

前言 从 Kubernetes 诞生以来&#xff0c;以 DevOps、容器化、可观测、微服务、Serverless 等技术为代表的云原生&#xff0c;催生了应用架构新一轮的升级。有意思的是&#xff0c;与以往的技术迭代更新不同&#xff0c;原本是一个技术圈常规的一次技术实践&#xff0c;在千行…

阿里云联合“产学研媒”发起 BizDevOps 共促计划,助力企业提升组织效能

2012年全球最具影响力的独立研究咨询机构Forrester曾预言&#xff1a;“In the future, all companies will be software companies”&#xff08;在未来&#xff0c;所有的企业都将成为软件企业&#xff09; 近10年来&#xff0c;DevOps运动在全球和中国风起云涌&#xff0c;…

Kubernetes HPA 的三个误区与避坑指南

前言 云计算带来的优势之一便是弹性能力&#xff0c;云原生场景下Kubernetes提供了水平弹性扩容能力&#xff08;HPA&#xff09;&#xff0c;让应用可以随着实时指标进行扩/缩。然而HPA的实际工作情况可能和我们直观预想的情况是不一样的&#xff0c;这里面存在一些认知误区。…

K8s有损发布问题探究

问题提出 流量有损是在应用发布时的常见问题&#xff0c;其现象通常会反馈到流量监控上&#xff0c;如下图所示&#xff0c;发布过程中服务RT突然升高&#xff0c;造成部分业务响应变慢&#xff0c;给用户的最直观体验就是卡顿&#xff1b;或是请求的500错误数突增&#xff0c…

解读 K8s Pod 的13种典型异常

在K8s中&#xff0c;Pod作为工作负载的运行载体&#xff0c;是最为核心的一个资源对象。Pod具有复杂的生命周期&#xff0c;在其生命周期的每一个阶段&#xff0c;可能发生多种不同的异常情况。K8s作为一个复杂系统&#xff0c;异常诊断往往要求强大的知识和经验储备。结合实战…

实践教程之如何快速使用 PolarDB-X

PolarDB-X 为了方便用户体验&#xff0c;提供了免费的实验环境&#xff0c;您可以在实验环境里体验 PolarDB-X 的安装部署和各种内核特性。除了免费的实验&#xff0c;PolarDB-X 也提供免费的视频课程&#xff0c;手把手教你玩转 PolarDB-X 分布式数据库。 本期实验可以让您快…

实践教程之如何将 PolarDB-X 与大数据等系统互通

本期实验将指导您使用PolarDB-XCanalClickHouse搭建实时分析系统。 本期免费实验地址 本期教学视频地址 前置准备 假设已经根据前一讲内容完成了PolarDB-X的搭建部署&#xff0c;可以成功链接上PolarDB-X数据库。 实践教程之如何快速安装部署PolarDB-X 部署Canal Canal是…

加载速度提升 15%,关于 Python 启动加速探索与实践的解析

编者按&#xff1a;在刚刚结束的 PyCon China 2022 大会上&#xff0c;龙蜥社区开发者严懿宸分享了主题为《Python 启动加速的探索与实践》的技术演讲。本次演讲&#xff0c;作者将从 CPython 社区相关工作、本方案的设计及实现&#xff0c;以及业务层面的集成等方面进行介绍。…

统信软件高级工程师:关于云原生技术在容器方面的应用介绍

编者按&#xff1a;随着近几年来云原生生态的不断壮大&#xff0c;众多企业纷纷开展了用云上云的工作&#xff0c;学习云原生及容器技术对于现代工程师是必不可少的。本文整理自龙蜥大讲堂 54 期&#xff0c;统信高级研发工程师参与技术分享&#xff0c;为大家介绍了云原生的介…

解读最佳实践:倚天710 ARM芯片的 Python+AI 算力优化

编者按&#xff1a;在刚刚结束的 PyCon China 2022 大会上&#xff0c;龙蜥社区开发者朱宏林分享了主题为《ARM 芯片的 PythonAI 算力优化》的技术演讲。本次演讲&#xff0c;作者将向大家介绍他们在倚天 710 ARM 芯片上开展的 PythonAI 优化工作&#xff0c;以及在 ARM 云平台…

从敏捷协作到价值交付

前面我的同事在分享的时候&#xff0c;指出目前软件研发的最大问题不是效率&#xff0c;而是研发资源的浪费。可能产品经理半天写的需求&#xff0c;开发要埋头苦干三个月。如果错误的选择了一个对业务发展无益的需求&#xff0c;会带着大家往错误的方向越跑越远。 那么什么是…

行动策略过于复杂怎么办?试试下面一些解决方法

背景 随着使用SLS告警越来越深入&#xff0c;有些用户的行动策略会配置的特别复杂&#xff0c;有些时候可以让用户通过创建多个行动策略来进行一定的精简&#xff0c;但是在一些场景下&#xff0c;用户是无法创建多个行动策略的。例如用户想要通过SLS来统一管理其各个监控系统…

从效能公式解构研发效能

这几年&#xff0c;云原生、Web3.0、元宇宙等技术的出现和应用&#xff0c;正在深刻地改变着我们这个世界。以数字技术应用为主线的数字化转型是此次人类文明变革的核心动力。在这一变革过程中&#xff0c;软件研发模式的发展起到了重至关重要的作用。从早期瀑布式、精益敏捷、…

阿里CCO:基于 Hologres 的亿级明细 BI 探索分析实践

CCO是Chief Customer Officer的缩写&#xff0c;也是阿里巴巴集团客户体验事业部的简称。随着业务的多元化发展以及行业竞争的深入&#xff0c;用户体验问题越来越受到关注。CCO体验业务运营小二日常会大量投入在体验洞察分析中&#xff0c;旨在通过用户的声音数据结合交易、物…

sdut 数字三角形问题

数字三角形问题 Time Limit: 1000MS Memory Limit: 65536KBSubmit Statistic DiscussProblem Description 给定一个由n行数字组成的数字三角形如下图所示。试设计一个算法&#xff0c;计算出从三角形的顶至底的一条路径&#xff0c;使该路径经过的数字总和最大。对于给定的由n行…

SSD( Single Shot MultiBox Detector)关键源码解析

SSD&#xff08;SSD: Single Shot MultiBox Detector&#xff09;是采用单个深度神经网络模型实现目标检测和识别的方法。如图0-1所示&#xff0c;该方法是综合了Faster R-CNN的anchor box和YOLO单个神经网络检测思路&#xff08;YOLOv2也采用了类似的思路&#xff0c;详见YOLO…

YOLO升级版:YOLOv2和YOLO9000解析

论文笔记&#xff1a;YOLO9000: Better, Faster, Stronger&#xff1b;官方网站 评论&#xff1a;YOLO是基于深度学习方法的端到端实时目标检测系统&#xff08;YOLO&#xff1a;实时快速目标检测&#xff09;。YOLO的升级版有两种&#xff1a;YOLOv2和YOLO9000。作者采用了一系…

解读Batch Normalization

【活动】Python创意编程活动开始啦&#xff01;&#xff01;&#xff01; CSDN日报20170424 ——《技术方向的选择》 程序员4月书讯&#xff1a;Angular来了&#xff01;解读Batch Normalization 2016-02-23 16:03 5262人阅读 评论(1) 收藏 举报 本文章已收录于&#xf…

SSD+caffe︱Single Shot MultiBox Detector 目标检测+fine-tuning(二)

承接上一篇SSD介绍&#xff1a;SSDcaffe︱Single Shot MultiBox Detector 目标检测&#xff08;一&#xff09; 如果自己要训练SSD模型呢&#xff0c;关键的就是LMDB格式生成&#xff0c;从官方教程weiliu89/caffe来看&#xff0c;寥寥几行code&#xff0c;但是前面的数据整理…