J - 免费馅饼(动态规划)数塔
J - 免费馅饼
为了使问题简化,假设在接下来的一段时间里,馅饼都掉落在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
哈哈哈哈哈~~~~开心开心每次自己做出一道题目的时候都开心的乐飞天了~~~~~~
恩 这个题目刚开始看的时候有一点点的乱 不知道怎么下手 后来想到了数塔的问题 于是就尝试的写了下
中间小错误不断不过吧本宝宝嘿嘿自己解决了
思路就是恩......从后往前推 既然知道了知道最后的是最大值那么也就一定知道前面那个的最大值依次往前
代码上:
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <iostream>
using namespace std;
int n;
int biscuit[100005][11];
int dp[100005][11];
int wharMAX(int a,int b,int c)
{int t=a;if(t<b)t=b;if(t<c)t=c;return t;
}
int main()
{while(scanf("%d",&n)!=EOF){int x,y,i,j;if(n==0)break;int maxn=1;memset(biscuit,0,sizeof(biscuit));memset(dp,0,sizeof(dp));for(int i=1;i<=n;i++){scanf("%d%d",&x,&y);biscuit[y][x]++;if(y>maxn)maxn=y;//y is time}for(int j=0;j<=10;j++)dp[maxn][j]=biscuit[maxn][j];int g=maxn;for(i=maxn;i>=1;i--){for(j=0;j<=10;j++){if(j==0)dp[i-1][j]=max(dp[i][j],dp[i][j+1])+biscuit[i-1][j];else if(j==10)dp[i-1][j]=max(dp[i][j],dp[i][j-1])+biscuit[i-1][j];elsedp[i-1][j]=wharMAX(dp[i][j],dp[i][j-1],dp[i][j+1])+biscuit[i-1][j];}} printf("%d\n",wharMAX(dp[1][4],dp[1][5],dp[1][6]));}return 0;
}
J - 免费馅饼(动态规划)数塔相关推荐
- [ACM_动态规划] hdu 1176 免费馅饼 [变形数塔问题]
Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁 ...
- hdu1176 免费馅饼 ( 数塔(DP))
免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- python 动态规划 数塔_数塔问题,简单的动态规划算法
/* 数塔问题: 9 12 15 10 6 8 2 18 9 5 19 7 10 4 16 有形如图所示的数塔,从顶部出发,在每一结点可以选择向左走或是向右走, 一直走到底层,要求找出一条路径,使路径 ...
- 55 - 算法 -动态规划 -数塔问题 感觉都是数组建模 递推方法规则
//模板#include <iostream> #include <cstdio> #include <string> using namespace std;/* ...
- 动态规划--数塔问题
动态规划–数塔问题 今天学习了动态规划的数塔问题,老师给我们讲了三种方法. (1)第一种方法是原始的递归,就是从上往下看一个n层塔的最大路径问题可以转化为选出左右两个n-1层塔的最大路径问题的较大值, ...
- hdu1176 免费馅饼 动态规划 二维数组实现
免费馅饼 Time Limit: 1000MS Memory Limit: 32768KB Submit Statistic Discuss Problem Description 都说天上不会掉馅饼 ...
- c++ 动态规划(数塔)
c++ 动态规划(dp) 题目描述 观察下面的数塔.写一个程序查找从最高点到底部任意位置结束的路径,使路径经过数字的和最大. 每一步可以从当前点走到左下角的点,也可以到达右下角的点. 输入 5 13 ...
- HDOJ 1176 免费馅饼 -- 动态规划
题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1176 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小 ...
- 动态规划——数塔(hdu2084)
首先介绍一下动态规划: 动态规划(dynamic programming),我们称之为DP,是求最优解的一种很常见的方法. 思想和背包基本一样,如对背包感兴趣的可以移步 http://blog.csd ...
- HDU1176天上掉馅饼(数塔问题)
Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内. ...
最新文章
- BERT大火却不懂Transformer?读这一篇就够了 重点 命名实体识别
- Nuxt.js - nuxt-link与router-link的差异
- noip复赛电脑有excel吗_指南 | 现在就必须了解的信息学竞赛(高一学生)
- 群晖通过WebDAV挂载阿里云盘
- win10 中文语言包
- 信息学奥赛一本通(C++版)在线评测系统 1205:汉诺塔问题
- 模2除法怎么计算,模2除法最简单的理解
- t分布f分布与样本均值抽样分布_常见的统计分布--数据分析
- Kata Containers及相关vmm介绍
- 深入探究知道创宇主动防御体系:云蜜罐因何诞生?
- Python入门:对Excel数据处理的学习笔记【第四章】字符串类型处理技术
- MATLAB实现模拟推导π的值
- JavaScript之取消计时器clearTimeout()
- 介绍一个成功的 Git 分支模型——终于知道如何管理git分支了(好文章!!强烈建议看本文的英文原文)
- [企业大脑智能决策中枢系统]3. 政企数字化转型的核心技术
- JetPack—DataStore核心原理与使用
- 物联网毕设 -- 人脸打卡系统(WIFI+APP+OneNet)
- 人员抽烟行为识别检测系统 opencv+python
- nginx正向代理与反向代理的配置
- sprintf 和 snprintf区别