百练 openjudge 开餐馆(动态规划)
4118:开餐馆
总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
-
北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, ... mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi 表示在mi 处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。请你帮助小明选择一个总利润最大的方案。
- 输入
-
标准的输入包含若干组测试数据。输入第一行是整数T (1 <= T <= 1000) ,表明有T组测试数据。紧接着有T组连续的测试。每组测试数据有3行,
第1行:地点总数 n (n < 100), 距离限制 k (k > 0 && k < 1000).
第2行:n 个地点的位置m1 , m2, ... mn ( 1000000 > mi > 0 且为整数,升序排列)
第3行:n 个地点的餐馆利润p1 , p2, ... pn ( 1000 > pi > 0 且为整数) - 输出
- 对于每组测试数据可能的最大利润
- 样例输入
-
23 111 2 1510 2 303 161 2 1510 2 30
- 样例输出
-
4030
动态规划的题目,就是计算每个位置所能获得的最大利润,再求最大值
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 105;
int dp[N],m[N],p[N];int main()
{int t,n,k;cin >> t;while(t--){cin >> n >> k;memset(dp,0,sizeof(dp));for(int i = 1;i <= n;i++)scanf("%d",&m[i]);for(int i = 1;i <= n;i++)scanf("%d",&p[i]);dp[1] = p[1];for(int i = 2;i <= n;i++){dp[i] = p[i];//每个位置的初始利润for(int j = 1;j < i;j++)if(m[i] - m[j] > k)dp[i] = max(dp[i],dp[j]+p[i]);//每个位置所能得到的最大利润}int maxn = 0;for(int i = 1;i <= n;i++)maxn = max(maxn,dp[i]);printf("%d\n",maxn);}return 0;
}
百练 openjudge 开餐馆(动态规划)相关推荐
- openjudge 开餐馆 【动态规划】
Description 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m ...
- openjudge 开餐馆(动态规划)
开餐馆 总时间限制: 1000ms 内存限制: 65536kB 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个 ...
- openjudge开餐馆
6045:开餐馆 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m ...
- NOI 2.6 动态规划 6045:开餐馆
题目来源:http://noi.openjudge.cn/ch0206/6045/ 6045:开餐馆 总时间限制: 1000ms 内存限制: 65536kB 描述 北大信息学院的同学小明毕业之后打 ...
- 【动态规划DP】开餐馆
题目:原题连接 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m2 ...
- 58 - 算法 -分治问题 - 循环 二分查找 OpenJudge 百练 4143和为给定数
#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <cmath ...
- 北大培训课动态规划----神奇的口袋(百练2755)
北京大学暑期课<ACM/ICPC竞赛训练> ppt摘取 什么是动态规划? ●递归到动规的一般转化方法 递归函数有n个参数,就定义一个n维的数组,数组 的下标是递归函数参数的取值范围,数组 ...
- ACM: 百练NOI——基本算法之动态规划
文章目录 Maximum sum(求两个不重叠子区间最大和) Post Office(感觉题解有问题) 最长上升子序列 最大子矩阵 采药(0-1背包) 最长公共子序列 吃糖果 登山 最长公共上升子序列 ...
- 水题: OpenJudge (百练 )2807 : 两倍
(百练 )2807 : 两倍 (http://bailian.openjudge.cn/practice/2807/) 描述 给定2到15个不同的正整数,你的任务是计算这些数里面有多少个数对满足:数对 ...
最新文章
- 【干货】南京大学《模式识别》PPT
- glog 报错解决: /bin/bash: aclocal-1.14: command not found
- js 显示当前时间(年月日时分秒)——getYear()与getFullYear()
- Android 解决导入多个module时jar包冲突
- 解决保存快照失败后redis无法写入的问题( Redis is configured to save RDB snapshots)
- mysql更改安装路径命令_如何修改mysql的安装路径
- python飞机大战源码以及素材资源
- android ppt 自动播放视频,ppt如何循环播放,ppt如何添加视频设置自动播放(ppt转换成视频)...
- CentOS 6.5 CentOS 7 rpm安装ftp服务端与ftp客户端
- java-net-php-python-23jspm在线学习设计计算机毕业设计程序
- piece table 的C语言简单实现
- ECharts-中国省市地图
- CRC-CCITT16(0xFFFF、XModem、0x1D0F、Kermit)
- 【mac】nvm 的安装和使用,解决mac重启node not found,每次都得source ~/.bash_profile
- 连接共享打印机提示【操作失败,错误为0x0000011b】
- win32 8.2 使用通用对话框
- vectorvn1610报价_VECTORVN1610
- PS CC 2018 图层
- pe文件中的3处Characteristics
- word,鼠标每点击一次,总转圈一会