OpenJ_Bailian 4118
来源:互联网 发布:阿里云服务器是什么 编辑:程序博客网 时间:2024/05/19 02:03
Description
北大信息学院的同学小明毕业之后打算创业开餐馆.现在共有n 个地点可供选择。小明打算从中选择合适的位置开设一些餐馆。这 n 个地点排列在同一条直线上。我们用一个整数序列m1, m2, ... mn 来表示他们的相对位置。由于地段关系,开餐馆的利润会有所不同。我们用pi 表示在mi 处开餐馆的利润。为了避免自己的餐馆的内部竞争,餐馆之间的距离必须大于k。请你帮助小明选择一个总利润最大的方案。
Input
标准的输入包含若干组测试数据。输入第一行是整数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 且为整数)
第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 且为整数)
Output
对于每组测试数据可能的最大利润
Sample Input
23 111 2 1510 2 303 161 2 1510 2 30
Sample Output
4030
FAQ | About Virtual Judge | Forum | Discuss | Open Source Project
#include<string.h>
#include<stdlib.h>
#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
#define N 110
#define Max 0x3f3f3f3f
int a[N], b[N], dp[N];
int main()
{
int T, i, n, d, ans;
scanf("%d", &T);
while(T--)
{
scanf("%d%d",&n,&d);
for(i=0;i<n;i++)
{
scanf("%d", &a[i]);
}
for(i=0;i<n;i++)
{
scanf("%d", &b[i]);
}
memset(dp, 0, sizeof(dp));
ans=b[0];
dp[0]=b[0];
for(i=1;i<n;i++)
{
for(int j=i-1;j>=0;j--)
{
if(abs(a[i]-a[j])>d)
dp[i]=max(dp[i], dp[j]+b[i]);
else
dp[i]=b[i];
ans=max(ans, dp[i]);
}
}
printf("%d\n", ans);
}
return 0;
}
0 0
- OpenJ_Bailian 4118
- 【 OpenJ_Bailian 4118 】开餐馆
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian
- OpenJ_Bailian 4118 开餐馆 (动态规划)
- poj-4118-OpenJ_Bailian-开餐馆【贪心】【背包】
- 【OpenJ_Bailian】4118 - 开餐馆(dp)
- OpenJ_Bailian - 3421
- Vim配置文件vimrc
- PAT 1003. 我要通过!
- unix linux的历史、区别以及发展
- 数据结构实验之栈五:下一较大值(一)
- PAT 1004. 成绩排名
- OpenJ_Bailian 4118
- MySQL错误代码以及出错信息对照大全
- Java中char和String的转换
- 这13个GIS开源软件,你了解吗?
- PAT 1005. 继续(3n+1)猜想
- thread包 一个简单的线程实例
- CRC32余式表生成算法
- linux(Mac)常用工具
- 商院1258