GDUT_专题二_C - 开餐馆
题目:
蒜头君想开家餐馆. 现在共有 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 - 开餐馆相关推荐
- c# 中崎_C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋、佳博、商祺等支持标准ESC/POS指令的POS打印机)...
C#版OPOS打印(基于北洋OPOS SDK二次开发包,支持EPSON和北洋.佳博.商祺等支持标准ESC/POS指令的POS打印机) 收藏 C#版OPOS打印 基于北洋OPOS SDK二次开发包,支持 ...
- GDUT - 专题学习2 C - 开餐馆
C - 开餐馆 题目 蒜头君想开家餐馆. 现在共有 n 个地点可供选择.蒜头君打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列 m1,m2,...mn 来 ...
- Spring学习笔记专题二
专题二 (1)注解 1,注解的作用:给Java结构添加标记: 2,注解的使用:使用注解一般需要三方面参与: 1,注解类: 2,需要标记的目标类型: 3,用于处理目标类型的处理程序: 3,Retenti ...
- 不正经的保姆级西电软工操作系统实验课教程 ==== 专题二 内核编译
*************** 看前须知 *********** 1.本文仅仅是西电软件工程OS实验课的教程,原则上只接受关于本实验相关的问题 2.代码原则上仅仅作为参考,如果被查出因为抄袭而导致不良 ...
- C#进行MapX二次开发之MapX基础知识
C#进行MapX二次开发之MapX基础知识 MapX的主要技术特点 (1). 以表(Table)的形式组织信息 每一个表都是一组MapInfo文件,这些文件组成了地图文件和数据库文件.为使用MapIn ...
- AcWing 1025. 开餐馆 (线性dp)
1025. 开餐馆 题意 信息学院的同学小明毕业之后打算创业开餐馆.现在共有 nnn 个地点可供选择. 小明打算从中选择合适的位置开设一些餐馆. 这 nnn 个地点排列在同一条直线上. 我们用一个整数 ...
- 动态规划练习题(3)开餐馆
Description 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m ...
- 上市企业创新专题二:研发投入、专利申请和专利授权情况
上市企业创新专题二:研发投入.专利申请和专利授权情况 整理好的面板数据,excel或stata版本 专利是创新成果的主要载体,专利所包含的技术.经济.法律等信息主要通过结构化专利文献著录项的形式加以呈 ...
- C#进行Visio二次开发之Shape的Data1、Data2、Data3的用处
我们知道,Visio的Shape对象有有3个比较特别的属性,分别是Data1.Data2.Data3,平常我们很少用到它,因为我们如果需要属性的话,可能会通过ShapeSheet的Customed P ...
最新文章
- 计算机基础算法棋盘覆盖,分治算法求解棋盘覆盖问题互动教学过程.doc
- 东北育才 NOIP模拟赛第1场
- Linux 上的高可用中间件
- 小型数控雕刻机制作Arduino_开一家全屋定制装修公司,怎么选择开料机与雕刻机?...
- 如何一条命令,榨干机器的所有内存?
- iPhone 14系列影像规格曝光:长焦镜头或再度缺席
- 使用Linux好还是unix好
- [转载] 使用 Python 实现鼠标键盘自动化
- 引用JavaScript的三种方式第二课
- 【LeetCode 剑指offer刷题】查找与排序题11:Sort Colors
- 玩转c语言——c语言小游戏 迷宫小游戏(附源码)
- STM32-ADC模数转换
- 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩:纹理映射技术(一)
- Android HAL层到驱动代码搜索---基于背光亮度的调试
- 运用卫星数据及AI技术 微软推出新一代模拟飞行游戏
- 华硕X550LD笔记本安装黑苹果
- ant弹窗_【React】急:请问ant modal(弹出框)怎么修改样式?
- Qt:可视化UI设计
- [Warning] anonymous type with no linkage used to declare variable with linkage
- 模拟stack/queue/priority_queue
热门文章
- VESC操作入门(一)——控制霍尔电机、无感电机和AS5047P
- U盘量产操作工具包,包含4k对齐,ChipGenius等U盘量产工具
- 探讨VMware ESXI虚拟网络和物理网络的对接
- python pycharm安装包失败 使用pip安装失败 解决方案
- 正则化为什么可以防止过拟合
- 明明觉醒为啥服务器还在维护,全职觉醒无法连接服务器是什么原因
- linux 安装了redis,Linux安装操作redis
- NLP——Translation 机器翻译
- 诛神java,《诛神online》先锋团评测报告
- 2021年中国化妆刷市场趋势报告、技术动态创新及2027年市场预测