一道dp or 贪心标签的题目,我dfs加个优化就能过,这合理吗?是不是该稍稍加强一下?
附代码:
#include<bits/stdc++.h>
#define N 105
using namespace std;
int n,H,ans,w[N],c[N],t[N],f[N*10][N][N];
void dfs(int T,int l,int lt,int F)
{
if(T<0||l>n||f[T][l][lt]>F) return;
f[T][l][lt]=F,ans=max(ans,F);
dfs(T-1,l,lt+1,F+w[l]-c[l]*lt);
dfs(T-t[l+1],l+1,0,F);
}
int main()
{
scanf("%d%d",&n,&H);
for(int i=1;i<=n;i++) scanf("%d",&w[i]);
for(int i=1;i<=n;i++) scanf("%d",&c[i]);
for(int i=2;i<=n;i++) scanf("%d",&t[i]);
dfs(H*12,1,0,0);
printf("%d",ans);
return 0;
}