AcWing 1025. 开餐馆 (线性dp)
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)相关推荐
- Bailian4118 开餐馆【DP】
4118:开餐馆 总时间限制: 1000ms 内存限制: 65536kB 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n ...
- 开餐馆(DP)(+两种思想总结)
1296:开餐馆 [题目描述]信息学院的同学小明毕业之后打算创业开餐馆.现在共有nn 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 nn 个地点排列在同一条直线上.我们用一个整数序列m1 ...
- AcWing 1018. 最低通行费【动态规划】【线性DP】【数字三角形】
AcWing 1018. 最低通行费 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 1018. 最低通行费 二.题目分析 (一)算 ...
- 【动态规划DP】开餐馆
题目:原题连接 描述 北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择.小明打算从中选择合适的位置开设一些餐馆.这 n 个地点排列在同一条直线上.我们用一个整数序列m1, m2 ...
- DP算法-背包问题与线性DP问题(Acwing)
目录 一.何为DP 二.背包问题 1.01背包问题 2.完全背包问题 3.多重背包问题 三.线性DP问题(典型例题与总结) 1.数字三角形问题 2.最长上升子序列 3.最长上升子序列Ⅱ 4.最长公共子 ...
- 0x51.动态规划 - 线性DP(习题详解 × 10)
目录 0x51.动态规划 - 线性DP 0x51.1 LIS问题 Problem A. 登山 (最长下降子序列) Problem B. 友好城市(思维) Problem C. 最大上升子序列和 0x5 ...
- 牛客 - 「火」皇家烈焰(线性dp)
题目链接:点击查看 题目大意:给出一个字符串表示扫雷游戏,其中: 0:这个格子没有烈焰,且其左右两个格子均没有烈焰 1:这个格子没有烈焰,且其左右两个格子中只有一个烈焰 2:这个格子没有烈焰,且其左右 ...
- NOI 2.6 动态规划 6045:开餐馆
题目来源:http://noi.openjudge.cn/ch0206/6045/ 6045:开餐馆 总时间限制: 1000ms 内存限制: 65536kB 描述 北大信息学院的同学小明毕业之后打 ...
- P1772 [ZJOI2006]物流运输(线性dp+最短路径)
P1772 [ZJOI2006]物流运输 题意 [ZJOI2006]物流运输 题目描述 物流公司要把一批货物从码头 A 运到码头 B.由于货物量比较大,需要 nnn 天才能运完.货物运输过程中一般要转 ...
最新文章
- SpringBoot 读取配置文件中参数全面教程
- 准确率至上已是过去式,这些趋势在2020年的AI领域更受关注
- iOS 高效开发-----实现description 方法 (续)
- 【转】C# windows服务的创建与调试
- 图画hadoop -- 生态圈
- luoguP1082同余方程
- 使用Maven Assembly plugin将依赖打包进jar
- 【pmcaff专栏】陆蔚青:漫谈商业智能
- Spring MVC 错误
- boost::rethrow_exception相关的测试程序
- 三年级优秀书籍推荐_三年级课外推荐阅读书目
- 我自己关于C语言,编译器,标准库,GUN glibc,CRT ,API之类的理解。
- HDOJ 1160 FatMouse's Speed
- java object转map_Java 面试题:百度前 200 页都在这里
- 消息总线扩展之集成Thrift-RPC
- Google的十个核心技术,互联网营销
- 使用vscode作为golang开发环境,无法跳转代码定义
- 主板诊断卡的使用方法视频教程
- idea构建post请求_IDEA-HTTP工具
- 微信公众号二维码生成
热门文章
- python例题求乘客等车时间_利用Python数据处理进行公交车到站时间预测(一)
- 关于Web安全趋势与核心防御机制
- 云上第一课 | 建个小破站有多简单?云计算老司机带你一小时搞定
- Django 自带分页器实现数字跳转
- 基于MATLAB读取高光谱影像每个像素的光谱信息
- 【文献翻译】宽带水下换能器的等效电路
- 平均负载(load average)
- Futures timed out after [10 seconds]. This timeout is controlled by spark.executor.heartbeatInterva
- Linux三剑客之grep命令详解及相关实例
- 什么是桌面互动以及其特点