bailian4118开餐馆dp(代码片段)

海岛Blog 海岛Blog     2022-12-19     688

关键词:

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 且为整数)
输出
对于每组测试数据可能的最大利润
样例输入
2
3 11
1 2 15
10 2 30
3 16
1 2 15
10 2 30
样例输出
40
30

问题链接Bailian4118 开餐馆
问题简述:(略)
问题分析:动态规划问题,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* Bailian4118 开餐馆 */

#include <bits/stdc++.h>

using namespace std;

const int N = 100;
int a[N], dp[N];

int main()

    int t, n, k;
    scanf("%d", &t);
    while (t--) 
        scanf("%d%d", &n, &k);
        for (int i = 0; i < n; i++) scanf("%d", &a[i]);
        for (int i = 0; i < n; i++) scanf("%d", &dp[i]);

        int ans = dp[0];
        for (int i = 1; i < n; i++) 
            int x = dp[i];
            for (int j = 0; j < i && a[i] - a[j] > k; j++)
                dp[i] = max(dp[i], dp[j] + x);
            ans = max(ans, dp[i]);
        

        printf("%d\\n", ans);
    

    return 0;

动规(12)-开餐馆(代码片段)

描述北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这n个地点排列在同一条直线上。我们用一个整数序列m1,m2,...mn来表示他们的相对位置。由于地段关... 查看详情

动规(12)-开餐馆(代码片段)

描述北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这n个地点排列在同一条直线上。我们用一个整数序列m1,m2,...mn来表示他们的相对位置。由于地段关... 查看详情

openjudge6045:开餐馆(代码片段)

描述北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1,m2,...mn 来表示他们的相对... 查看详情

noi2.6_6045开餐馆(dp)

题意:有N个地址,从中选一些开餐馆,要保证相邻餐馆的距离大于k。问最大利润。解法:f[i]表示在前i个地址中选的最大利润。1#include<cstdio>2#include<cstdlib>3#include<cstring>4#include<iostream>5usingnamespacestd;67constintMaxn=1... 查看详情

[树形dp]jzoj5788餐馆(代码片段)

...on K妹的胡椒粉大卖,这辣味让食客们感到刺激,许多餐馆也买这位K妹的账。有N家餐馆,有N-1条道路,这N家餐馆能相互到达。K妹从1号餐馆开始。每一个单位时间,K妹可以在所在餐馆卖完尽量多的胡椒粉,或者移动到有道路... 查看详情

[树形dp]jzojp5788餐馆(代码片段)

...on K妹的胡椒粉大卖,这辣味让食客们感到刺激,许多餐馆也买这位K妹的账。有N家餐馆,有N-1条道路,这N家餐馆能相互到达。K妹从1号餐馆开始。每一个单位时间,K妹可以在所在餐馆卖完尽量多的胡椒粉,或者移动到有道路... 查看详情

bailian4122切割回文dp(代码片段)

4122:切割回文总时间限制:1000ms内存限制:65536kB描述阿福最近对回文串产生了非常浓厚的兴趣。如果一个字符串从左往右看和从右往左看完全相同的话,那么就认为这个串是一个回文串。例如,“abcaacba”是一个回文串,... 查看详情

bailian4007计算字符串距离dp(代码片段)

4007:计算字符串距离总时间限制:1000ms内存限制:65536kB描述对于两个不同的字符串,我们有一套操作方法来把他们变得相同,具体方法为:修改一个字符(如把“a”替换为“b”)删除一个字符(如把“travelin... 查看详情

bailian2759神奇的口袋dp(代码片段)

2759:神奇的口袋(2)总时间限制:1000ms内存限制:65536kB描述有一个神奇的口袋,总的容积是400,用这个口袋可以变出一些物品,这些物品的总体积必须是400。John现在有n个想要得到的物品,每个物品的体积分别是a1,... 查看详情

bailian4119复杂的整数划分问题dp(代码片段)

4119:复杂的整数划分问题总时间限制:200ms内存限制:65536kB描述将正整数n表示成一系列正整数之和,n=n1+n2+…+nk,其中n1>=n2>=…>=nk>=1,k>=1。正整数n的这种表示称为正整数n的划分。输入标... 查看详情

bailian4149课程大作业dp(代码片段)

4149:课程大作业总时间限制:1000ms内存限制:65536kB描述小明是北京大学信息科学技术学院三年级本科生。他喜欢参加各式各样的校园社团。这个学期就要结束了,每个课程大作业的截止时间也快到了,可是小明还没有开始做... 查看详情

bailian4124海贼王之伟大航路dp(代码片段)

4124:海贼王之伟大航路总时间限制:1000ms内存限制:65536kB描述“我是要成为海贼王的男人!”,路飞一边喊着这样的口号,一边和他的伙伴们一起踏上了伟大航路的艰险历程。路飞他们伟大航路行程的起点是罗格镇,... 查看详情

dp-bailian4131:charmbracelet(代码片段)

题目链接http://bailian.openjudge.cn/practice/4131/解题分析这是一个基础的01背包问题,使用动态规划来解决,因为题目中给的M,也就是背包最大容量比较大,使用二维数组可能会超内存,所以可以使用滚动数组的方法节省空间。状态转... 查看详情

bailian2806公共子序列最长公共子序列+dp(代码片段)

2806:公共子序列描述我们称序列Z=<z1,z2,...,zk>是序列X=<x1,x2,...,xm>的子序列当且仅当存在严格上升的序列<i1,i2,...,ik>,使得对j=1,2,...,k,有xij=zj。比如Z=<a,b,f,c>是X=<a,b,c,f,b,c>的子序列。现在给出两个序列X和Y,你... 查看详情

洛谷p1064金明的预算方案dp/01背包-方案数(代码片段)

...拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。题目描述不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩M元(M<=10000)。餐馆... 查看详情

zoj4118stonesinthebucket(代码片段)

水题给出n个数只能让某个数-1或者让某个数-1另一个数+1使最后n个数都相等问最少的操作数AC代码:1#include<bits/stdc++.h>2usingnamespacestd;3typedeflonglongll;4typedefunsignedlonglongull;56lla[100005];78intmain()9llt,n,k;10llans,sum;11cin&g 查看详情

小a点菜(luogu1164)简单dp(代码片段)

...拿到了uoi的ra(镭牌)后,立刻拉着基友小A到了一家……餐馆,很低端的那种。uim指着墙上的价目表(太低级了没有菜单),说:“随便点”。题目描述不过uim由于买了一些辅(e)辅(ro)书,口袋里只剩 MM 元 (Mle100... 查看详情

004:开餐馆

004:开餐馆总时间限制:1000ms内存限制:65536kB描述北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这n个地点排列在同一条直线上。我们用一个整数序列m1,m2... 查看详情