免费馅饼【暑期集训I题】【经典DP】

2023-10-31

    这不是一道很废脑汁的题目,可以说和前面的数塔相同,只是题目讲的长了些而已。

都说天上不会掉馅饼,但有一天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
Sample Output
4

        思路:我们可以利用mp[时间][位移]这样的数组储存每个时间点上对应位置的馅饼数量,然后,我们会看到,假如从时间1开始往后找,是很不方便的(当然也是可行的),但有了前面数塔给我的经验,我决定用从后往前找的思想,那么当我们找到mp[0][5]位置的时候就是最后的答案了。

完整代码:

#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
struct node
{
    int a,b;
}k[100005];
int mp[100005][12];
int MAX_3(int r1, int r2, int r3)
{
    return max(r1, max(r2, r3));
}
int main()
{
    while(scanf("%d",&n)&&n)
    {
        memset(mp, 0, sizeof(mp));
        int max_Time=0;
        for(int i=1; i<=n; i++)
        {
            scanf("%d%d",&k[i].a,&k[i].b);
            mp[k[i].b][k[i].a]++;
            if(max_Time<k[i].b)
            {
                max_Time=k[i].b;
            }
        }
        for(int i=max_Time-1; i>=0; i--)
        {
            mp[i][0]+=max(mp[i+1][0], mp[i+1][1]);
            for(int j=1; j<=9; j++)
            {
                mp[i][j]+=MAX_3(mp[i+1][j-1], mp[i+1][j], mp[i+1][j+1]);
            }
            mp[i][10]+=max(mp[i+1][9], mp[i+1][10]);
        }
        printf("%d\n",mp[0][5]);
    }
    return 0;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

免费馅饼【暑期集训I题】【经典DP】 的相关文章

  • Codeforces Round #291 (Div. 2)

    题目链接contest 514 A Chewba ca and Number 不允许有前导零 所以如果第一位是9的话 需要特别考虑 一开始理解错了题意 又WA了呜呜呜 include
  • floyd算法 O(n^3)

    标准弗洛伊德算法 三重循环 循环结束之后 d i j 存储的就是点 i 到点 j 的最短距离 需要注意循环顺序不能变 第一层枚举中间点 第二层和第三层枚举起点和终点 特点 1 复杂度为O n 3 只能处理200以内的点 2 一次求出所有结点
  • Beautiful Mirrors【Codeforces 1265 E】【期望DP】

    Codeforces Round 604 Div 2 E 题记 不是杭电今年份的原题嘛 为什么比赛的时候没想到这个方面呢 当然题也读错了 尬 杭电多校原题 然后再继续说一下这道题的特殊之处吧 随便说说 典型问题 没有特殊之处 大概画了个图
  • 【BZOJ 4069】 [Apio2015]巴厘岛的雕塑

    4069 apio2015 巴厘岛的雕塑 Time limit 1000 ms Memory limit 65536 KB Description The province of Bali has many sculptures locat
  • hdu 1074 Doing Homework

    Problem acm hdu edu cn showproblem php pid 1074 题意 n 份作业 分别给出名字 完成所需时间 cost 最迟上交时间 deadline 作业每迟交一天扣一分 问最少的扣分数 Analysis
  • 【DP练习】美元DOLLARS

    1040 练习题目 美元DOLLARS Description 在以后的若干天里戴维将学习美元与德国马克的汇率 编写程序帮助戴维何时应买或卖马克或美元 使他从100美元开始 最后能获得最高可能的价值 Input 输入文件的第一行是一个自然数
  • 入门级动态规划:2018年第九届蓝桥杯省赛B组第四题—测试次数( 摔手机 )

    目录 下面列出用动态规划如何解决此问题 计算若干层楼用若干部手机最少需要摔多少次 计算用若干部手机摔若干次最多可以确定多少层楼 原题描述 x星球的居民脾气不太好 但好在他们生气的时候唯一的异常举动是 摔手机 各大厂商也就纷纷推出各种耐摔型手
  • Wireless Password 【HDU - 2825】【AC自动机+状压DP】

    题目链接 好题一道 推了一会 然后计算了一下时间复杂度 差不多最坏情况是25 100 1024 26 66560000然后看了下 嗯 能搞 有搞头哈哈哈 然后写了一下 首先 WA了 发现竟然是最大极限哪儿写错了 我的个天呐 A 我们看到最多
  • linux--shell错误:syntax error near unexpected token ‘('

    这几天编写了几个简单的shell程序 然后都出现了syntax error near unexpected token 的错误 然后实在是检查不出错误 后面百度了才找到的原因 之前错误的程序片段如下 usr whoami dr pwd 提示
  • hdu 1003 最大连续子序列和及起始位置 && hdu 1087 最大上升子序列和

    hdu 1003 题意 求最大连续子序列和及起始位置 对于动态规划问题要找出其子问题 考虑到dp的无后效性 dp i 表示以i为结尾的最大值 当dp i 1 gt 0时 以i 1为值对以i为结尾的值有贡献 否则起始位置变为自己 动态地更新最
  • 过河 【状态压缩DP】+【完整的数论推导过程】

    题目链接 题意 很多人以为青蛙是要跳到石头上 一个个往后跳 问最少需要的石头数量 其实不然 题目给的样例的确也是有些坑了 青蛙每次都有跳的距离范围 题目求的是最少会跳到的石头 青蛙可以在水中起跳 它要尽可能的避开石头 也就是问抵达终点时最少
  • gym102263 problem J Thanos Power (dp)

    链接 题意 给出一个大数 有两种操作 加 1 0 x 10 x 10x和减 1 0
  • hdu 1069 Monkey and Banana

    Problem acm hdu edu cn showproblem php pid 1069 Reference www cnblogs com kuangbin archive 2011 08 04 2127291 html 题意 给
  • HDMI和DP线的等级和速度

    转自 4K 144Hz到底需要多少带宽
  • 16.4 线性DP练习——【字符串转换】

    文章目录 题目描述 输入描述 输出描述 输入输出样例 最终代码c c 过程理解 题目描述 小蓝拥有两个字符串S T 他希望通过如下操作使得字符S转换为字符串T 操作有一下三种 删除一个字符 插入一个字符 将一个字符改为另一个字符 问最少需要
  • Palindrome subsequence【区间DP+冗斥】

    题目链接HDU 4632 题目让我们求给定的一段字符串上回文串的长度 一个数也算是回文串 于是我就想怎样去找其中的规律 我举了些例子 先是从相同的字符串开始举例 aaa 对于aaa dp 1 1 1 dp 2 2 1 dp 1 2 dp 1
  • [HDU 5079][2014 Asia AnShan Regional Contest]Square(DP套DP)

    题目链接 http acm hdu edu cn showproblem php pid 5079 题目大意 给你一个 n n n 8 n middot n n le 8 的棋盘 上面有一些格子必须是黑色 其它可以染黑或者染白 对于一个棋盘
  • Puzzles【Codeforces 697 D】【树形DP + 期望DP】

    Codeforces Round 362 Div 2 D 我们从1号结点开始 给每个结点标序 问的是每个结点的序号的期望是多少 输出这N个结点的期望 那么1号点的期望一定就是1了 对于其他的点呢 可以举例这样的一幅图 首先我们可以确定1 因
  • 【DP】拔河比赛

    题目 一个学校举行拔河比赛 所有的人被分成了两组 每个人必须 且只能够 在其中的一组 要求两个组的人数相差不能超过1 且两个组内的所有人体重加起来尽可能地接近 输入 输入数据的第1行是一个n 表示参加拔河比赛的总人数 n lt 100 接下
  • [蓝桥杯 2014 省 A] 波动数列

    题目链接 蓝桥杯 2014 省 A 波动数列 题目描述 观察这个数列 1 3 0 2

随机推荐

  • clickhouse There is no supertype for types UInt64, Float64

    There is no supertype for types UInt64 Float64 进行union all操作的时候 发现有两个字段名称相同 但是类型不同 所以出现了这个字段 如下 解决方案 统一转Float64类型 因人而异
  • 单片机毕业设计 遥控小车设计与实现

    文章目录 1 简介 2 主要器件与实现 2 1 电机驱动模块 2 2 蓝牙模块 2 3 蓝牙调试APP 3 实现效果 5 部分参考代码 6 最后 1 简介 Hi 大家好 今天向大家介绍一个学长做的单片机项目 基于单片机的遥控小车设计与实现
  • 注解@Lazy

    注解 Lazy 1 注解由来 Lazy 注解是 Spring 框架提供的一种机制 用于延迟初始化 Bean 它可以推迟 Bean 的初始化时机 从而优化应用程序的性能和资源利用 2 注解示例 java复制代码 Component Lazy
  • git回退--使用TortoiseGit小乌龟【我有一颗后悔药,服用说明图文详细,请对症下药】

    hi 你好 见到你很开心 我听到你的呼唤啦 你说你一不小心做错事了 我这刚好有一颗后悔药 说不定等你吃完 就能回到事情发生前啦 祝你好运o 下面我给大家介绍此款后悔药功效 请对症下药 药效 可穿越回到 之前某一次提交的时刻 本地与远端分支
  • SpringBoot中使用@Insert、@Update实现批量新增、更新

    一 使用 Insert批量新增 数据库原始表数据 数据层接口 批量新增 Insert
  • 有向图的拓扑排序

    给定一个 n 个点 m 条边的有向图 点的编号是 1 到 n 图中可能存在重边和自环 请输出任意一个该有向图的拓扑序列 如果拓扑序列不存在 则输出 1 若一个由图中所有点构成的序列 A 满足 对于图中的每条边 x y x 在 A 中都出现在
  • Explain各个字段的含义

    文章目录 TOC 1 expanin的结果示例 2 各个字段的含义 1 id 2 select type 3 table 4 type 重要 我们利用索引查找出来的记录显示 5 possible keys 6 key 7 key len 8
  • VUE3 之 生命周期函数

    目录 1 概述 2 VUE3 生命周期函数介绍 3 代码例子 4 综述 5 个人公众号 1 概述 老话说的好 天生我材必有用 千金散尽还复来 言归正传 今天我们来聊一下 VUE 的生命周期函数 所谓生命周期函数 就是在某一条件下被自动触发的
  • BLE MESH组网(一)简介和基本概念

    BLE MESH组网 一 BLE MESH简介 BLE MESH来源 BLE MESH用处 BLE MESH的通讯方式 管理洪水 市场内蓝牙设备支持 安全性 BLE MESH协议栈模型 BLE MESH基本概念 节点 元素 模型和状态 地址
  • vue+饿了么 点击当前元素之外收起弹框

    v clickoutside指令解决此问题 先引入 import Clickoutside from element ui src utils clickoutside export default directives Clickouts
  • linux系统部署jenkins详细教程

    一 Linux环境 1 下载war包 官网下载地址 https get jenkins io war stable 2 332 4 jenkins war 2 将war包上传至服务器 创建目录 home ubuntu jenkins 上传w
  • AndroidStudio的一些代码恢复功能

    我一个好兄弟 也是一个程序员 一天写代码的时候 他要删除一个apk文件 点击delete的时候 Androidstudio卡了一下 就出问题了 导致他的所有app下面的所有东西全没了 代码 jar包全没了 用过as的都知道 在as中删除文件
  • vulnhub-VULNOS: 2渗透测试靶场

    靶场下载地址VulnOS 2 VulnHub 靶场文件时virtualBox 虚拟机的靶场 vm无法导入 安装vbox之后直接双击靶场文件导入 之后设置网卡为默认桥接模式即可 开机 信息收集 使用nmap 192 168 2 0 24 进行
  • Dockerfile中的CMD和ENTRYPOINT有什么区别?

    本文翻译自 What is the difference between CMD and ENTRYPOINT in a Dockerfile In Dockerfiles there are two commands that look
  • Java正则工具类从地址中提取省市区

    Java正则工具类从地址中提取省市区 最近有个需求 从一串地址中提取出省市区 然后开始寻找解决方案 最终通过网上一些正则 再加上自己改动的 貌似弄成一个比较匹配的工具类 其中代码如下 有需要的可以参考下 其中一些自治区还有直辖市均已兼容 自
  • Linux基础命令

    Linux基础命令 1 ls和cd命令 2 修改文件权限 2 1初识权限 2 2修改权限 3 修改组别 4 查看日志 4 1tail 4 2head 4 3cat 4 4more 4 5less 4 6grep 5 编辑文本 6 创建软链
  • 日志类型汇总

    Slf4j slf4j 的全称是 Simple Loging Facade For Java 即它仅仅是一个为 Java 程序提供日志输出的统一接口 并不是一个具体的日志实现方案 就比如 JDBC 一样 只是一种规则而已 所以单独的 slf
  • python机器学习算法(赵志勇)学习笔记( Logistic Regression,LR模型)

    Logistic Regression 逻辑回归 分类算法是典型的监督学习 分类算法通过对训练样本的学习 得到从样本特征到样本的标签之间的映射关系 也被称为假设函数 之后可利用该假设函数对新数据进行分类 通过训练数据中的正负样本 学习样本特
  • vue遮罩加载动画(可以当作全屏弹窗)

    最终效果 加载动画部分 div span span span span span span span span span span div
  • 免费馅饼【暑期集训I题】【经典DP】

    这不是一道很废脑汁的题目 可以说和前面的数塔相同 只是题目讲的长了些而已 都说天上不会掉馅饼 但有一天gameboy正走在回家的小径上 忽然天上掉下大把大把的馅饼 说来gameboy的人品实在是太好了 这馅饼别处都不掉 就掉落在他身旁的10