【OpenJudge 百练 4118】开餐馆 DP
一道比较简单的DP,AC代码如下
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 105;
int dp[N],m[N],p[N];
int main()
{
int T,n,k;
cin>>T;
while(T--)
{
cin>>n>>k;
for(int i=1;i<=n;i++)
cin>>m[i];
for(int i=1;i<=n;i++)
{
cin>>p[i];
dp[i]=p[i];
}
for(int i=2;i<=n;i++)
for(int j=1;j<i;j++)
if(m[i]-m[j]>k)
dp[i]=max(dp[i],dp[j]+p[i]);
int maxn=0;
for(int i=1;i<=n;i++)
if(dp[i]>maxn)maxn=dp[i];
printf("%d\n",maxn);
}
return 0;
}