题目:

蒜头君想开家餐馆. 现在共有 n 个地点可供选择。蒜头君打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列 m1, m2, ... mn,m1​,m2​,...mn​ 来表示他们的相对位置。由于地段关系, 开餐馆的利润会有所不同。我们用 pi​ 表示在 mi​ 处开餐馆的利润。

为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于 k。

请你帮助蒜头君选择一个总利润最大的方案。

输入格式

标准的输入包含若干组测试数据。

输入第一行是整数 T (1≤T≤1000),表明有 T 组测试数据。紧接着有 T 组连续的测试。每组测试数据有 3 行;

第 1 行:地点总数n(n<100), 距离限制k(k<1000);

第 2 行: n 个地点的位置 m_1 , m_2, ... m_n(1000000>mi​>0 且为整数, 升序排列);

第 3 行: n 个地点的餐馆利润 p_1 , p_2, ... p_n ​(1000>pi​>0 且为整数)。

输出格式

对于每组测试数据可能的最大利润。

Sample Input

2
3 11
1 2 15
10 2 30
3 16
1 2 15
10 2 30

Sample Output

40
30

思路分析:

这是一道01背包的变种,对于每个餐馆我们都有选或者不选两种情况,但是与正常的01背包的限制条件不同,这道题的限制条件为每个餐馆之间的距离必须大于k,并要求所得的最大利润。

具体实现看代码注释。

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int N = 110;
int dp[N], m[N], p[N];//dp[i]记录到第i个餐馆的最大利润
int main() {int t;scanf("%d", &t);while (t--) {memset(dp, 0, sizeof(dp));//初始化dp数组,防止被上一次数据影响 int n, k;scanf("%d%d", &n, &k);for (int i = 1; i <= n; i++) {cin >> m[i];}int maxx = 0;for (int i = 1; i <= n; i++) {cin >> p[i];dp[i] = p[i];//每个餐馆的最低利润一定是它本身的利润 }for (int i = 1; i <= n; i++) {//遍历全部餐馆 for (int j = 1; j <= i; j++) {//遍历从第1个到第i个餐馆的最大利润 if (m[i] - m[j] > k) {//如果符合范围 dp[i] = max(dp[i], dp[j] + p[i]);//更新选或不选的最优解 }maxx = max(maxx, dp[i]);//记录更新最大值 }}cout << maxx << endl;}return 0;
}

GDUT_专题二_C - 开餐馆相关推荐

  1. c# 中崎_C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)...

    C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋.佳博.商祺等支持标准ESC/POS指令的POS打印机) 收藏 C#版OPOS打印 基于北洋OPOS SDK二次开发包,支持 ...

  2. GDUT - 专题学习2 C - 开餐馆

    C - 开餐馆 题目 蒜头君想开家餐馆. 现在共有 n 个地点可供选择.蒜头君打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列 m1​,m2​,...mn​ 来 ...

  3. Spring学习笔记专题二

    专题二 (1)注解 1,注解的作用:给Java结构添加标记: 2,注解的使用:使用注解一般需要三方面参与: 1,注解类: 2,需要标记的目标类型: 3,用于处理目标类型的处理程序: 3,Retenti ...

  4. 不正经的保姆级西电软工操作系统实验课教程 ==== 专题二 内核编译

    *************** 看前须知 *********** 1.本文仅仅是西电软件工程OS实验课的教程,原则上只接受关于本实验相关的问题 2.代码原则上仅仅作为参考,如果被查出因为抄袭而导致不良 ...

  5. C#进行MapX二次开发之MapX基础知识

    C#进行MapX二次开发之MapX基础知识 MapX的主要技术特点 (1). 以表(Table)的形式组织信息 每一个表都是一组MapInfo文件,这些文件组成了地图文件和数据库文件.为使用MapIn ...

  6. AcWing 1025. 开餐馆 (线性dp)

    1025. 开餐馆 题意 信息学院的同学小明毕业之后打算创业开餐馆.现在共有 nnn 个地点可供选择. 小明打算从中选择合适的位置开设一些餐馆. 这 nnn 个地点排列在同一条直线上. 我们用一个整数 ...

  7. 动态规划练习题(3)开餐馆

    Description 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m ...

  8. 上市企业创新专题二:研发投入、专利申请和专利授权情况

    上市企业创新专题二:研发投入.专利申请和专利授权情况 整理好的面板数据,excel或stata版本 专利是创新成果的主要载体,专利所包含的技术.经济.法律等信息主要通过结构化专利文献著录项的形式加以呈 ...

  9. C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处

    我们知道,Visio的Shape对象有有3个比较特别的属性,分别是Data1.Data2.Data3,平常我们很少用到它,因为我们如果需要属性的话,可能会通过ShapeSheet的Customed P ...

最新文章

  1. 计算机基础算法棋盘覆盖,分治算法求解棋盘覆盖问题互动教学过程.doc
  2. 东北育才 NOIP模拟赛第1场
  3. Linux 上的高可用中间件
  4. 小型数控雕刻机制作Arduino_开一家全屋定制装修公司,怎么选择开料机与雕刻机?...
  5. 如何一条命令,榨干机器的所有内存?
  6. iPhone 14系列影像规格曝光:长焦镜头或再度缺席
  7. 使用Linux好还是unix好
  8. [转载] 使用 Python 实现鼠标键盘自动化
  9. 引用JavaScript的三种方式第二课
  10. 【LeetCode 剑指offer刷题】查找与排序题11:Sort Colors
  11. 玩转c语言——c语言小游戏 迷宫小游戏(附源码)
  12. STM32-ADC模数转换
  13. 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩:纹理映射技术(一)
  14. Android HAL层到驱动代码搜索---基于背光亮度的调试
  15. 运用卫星数据及AI技术 微软推出新一代模拟飞行游戏
  16. 华硕X550LD笔记本安装黑苹果
  17. ant弹窗_【React】急:请问ant modal(弹出框)怎么修改样式?
  18. Qt:可视化UI设计
  19. [Warning] anonymous type with no linkage used to declare variable with linkage
  20. 模拟stack/queue/priority_queue

热门文章

  1. VESC操作入门(一)——控制霍尔电机、无感电机和AS5047P
  2. U盘量产操作工具包,包含4k对齐,ChipGenius等U盘量产工具
  3. 探讨VMware ESXI虚拟网络和物理网络的对接
  4. python pycharm安装包失败 使用pip安装失败 解决方案
  5. 正则化为什么可以防止过拟合
  6. 明明觉醒为啥服务器还在维护,全职觉醒无法连接服务器是什么原因
  7. linux 安装了redis,Linux安装操作redis
  8. NLP——Translation 机器翻译
  9. 诛神java,《诛神online》先锋团评测报告
  10. 2021年中国化妆刷市场趋势报告、技术动态创新及2027年市场预测