1025. 开餐馆

题意

信息学院的同学小明毕业之后打算创业开餐馆.现在共有 nnn 个地点可供选择。

小明打算从中选择合适的位置开设一些餐馆。

这 nnn 个地点排列在同一条直线上。

我们用一个整数序列 m1,m2,…,mnm_1,m_2,…,m_nm1​,m2​,…,mn​来表示他们的相对位置。

由于地段关系,开餐馆的利润会有所不同。我们用 pip_ipi​ 表示在 mim_imi​ 处开餐馆的利润。

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

请你帮助小明选择一个总利润最大的方案。

思路

线性dp模板题

状态表示:f[i]f[i]f[i] 表示从前 iii 个餐馆中选择如何开店的利润的最大值

状态转移:可以将状态划分成倒数第二个选择哪个餐馆 有两种状态

第一种:倒数第二个餐馆离当前的餐馆距离大于 kkk 那么可以共存

第二种:倒数第二个餐馆离当前的餐馆距离小于等于 kkk 要么选择当前的餐馆 要么舍弃当前的餐馆

代码

#include<bits/stdc++.h>
#define INF 0x3f3f3f3f
#define mod 998244353
#define endl '\n'using namespace std;
typedef long long LL;
typedef pair<int, int>PII;
const int N = 600;int n, k;
int m[N], p[N];
int f[N];
void solve() {cin >> n >> k;for (int i = 1; i <= n; ++i)scanf("%d", &m[i]);for (int i = 1; i <= n; ++i)scanf("%d", &p[i]);memset(f, 0, sizeof f);f[1] = p[1];for (int i = 1; i <= n; ++i) {for (int j = 1; j <= i; ++j) {if (m[j] + k < m[i]) //如果可以选当前的餐馆f[i] = max(f[i], f[j] + p[i]);else f[i] = max(f[i], f[j]); //不能选当前的餐馆情况下的选择一:选择之前的//舍弃现在的}f[i] = max(f[i], p[i]); //不能选当前餐馆的情况下的选择二:选择现在的 舍弃之前的}cout << f[n] << endl;}int main() {int t; cin >> t;while(t--)solve();return 0;
}

AcWing 1025. 开餐馆 (线性dp)相关推荐

  1. Bailian4118 开餐馆【DP】

    4118:开餐馆 总时间限制: 1000ms 内存限制: 65536kB 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n ...

  2. 开餐馆(DP)(+两种思想总结)

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

  3. AcWing 1018. 最低通行费【动态规划】【线性DP】【数字三角形】

    AcWing 1018. 最低通行费 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 1018. 最低通行费 二.题目分析 (一)算 ...

  4. 【动态规划DP】开餐馆

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

  5. DP算法-背包问题与线性DP问题(Acwing)

    目录 一.何为DP 二.背包问题 1.01背包问题 2.完全背包问题 3.多重背包问题 三.线性DP问题(典型例题与总结) 1.数字三角形问题 2.最长上升子序列 3.最长上升子序列Ⅱ 4.最长公共子 ...

  6. 0x51.动态规划 - 线性DP(习题详解 × 10)

    目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...

  7. 牛客 - 「火」皇家烈焰(线性dp)

    题目链接:点击查看 题目大意:给出一个字符串表示扫雷游戏,其中: 0:这个格子没有烈焰,且其左右两个格子均没有烈焰 1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰 2:这个格子没有烈焰,且其左右 ...

  8. NOI 2.6 动态规划 6045:开餐馆

    题目来源:http://noi.openjudge.cn/ch0206/6045/ 6045:开餐馆 总时间限制: 1000ms   内存限制: 65536kB 描述 北大信息学院的同学小明毕业之后打 ...

  9. P1772 [ZJOI2006]物流运输(线性dp+最短路径)

    P1772 [ZJOI2006]物流运输 题意 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头 A 运到码头 B.由于货物量比较大,需要 nnn 天才能运完.货物运输过程中一般要转 ...

最新文章

  1. SpringBoot 读取配置文件中参数全面教程
  2. 准确率至上已是过去式,这些趋势在2020年的AI领域更受关注
  3. iOS 高效开发-----实现description 方法 (续)
  4. 【转】C# windows服务的创建与调试
  5. 图画hadoop -- 生态圈
  6. luoguP1082同余方程
  7. 使用Maven Assembly plugin将依赖打包进jar
  8. 【pmcaff专栏】陆蔚青:漫谈商业智能
  9. Spring MVC 错误
  10. boost::rethrow_exception相关的测试程序
  11. 三年级优秀书籍推荐_三年级课外推荐阅读书目
  12. 我自己关于C语言,编译器,标准库,GUN glibc,CRT ,API之类的理解。
  13. HDOJ 1160 FatMouse's Speed
  14. java object转map_Java 面试题:百度前 200 页都在这里
  15. 消息总线扩展之集成Thrift-RPC
  16. Google的十个核心技术,互联网营销
  17. 使用vscode作为golang开发环境,无法跳转代码定义
  18. 主板诊断卡的使用方法视频教程
  19. idea构建post请求_IDEA-HTTP工具
  20. 微信公众号二维码生成

热门文章

  1. python例题求乘客等车时间_利用Python数据处理进行公交车到站时间预测(一)
  2. 关于Web安全趋势与核心防御机制
  3. 云上第一课 | 建个小破站有多简单?云计算老司机带你一小时搞定
  4. Django 自带分页器实现数字跳转
  5. 基于MATLAB读取高光谱影像每个像素的光谱信息
  6. 【文献翻译】宽带水下换能器的等效电路
  7. 平均负载(load average)
  8. Futures timed out after [10 seconds]. This timeout is controlled by spark.executor.heartbeatInterva
  9. Linux三剑客之grep命令详解及相关实例
  10. 什么是桌面互动以及其特点