1 条题解
-
0
#include <stdio.h> #include <iostream> #include <memory.h> using namespace std; int w[100000]; int v[100000]; int dp[100000]; int s,n,d; int main() { scanf("%d%d%d",&s,&n,&d); for(int i=1; i<=d; ++i){ scanf("%d%d",&w[i],&v[i]); } for(int i=1; i<=n; ++i){ int m=s/1000; for(int j=1; j<=d; ++j){ for(int k=w[j]/1000; k<=m; ++k){ if(k>=w[j]/1000) dp[k]=max(dp[k],dp[k-w[j]/1000]+v[j]); // printf("%d ",dp[k]); } // printf("\n"); } s+=dp[m]; memset(dp,0,sizeof(dp)); } printf("%d",s); }
- 1
信息
- ID
- 167
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 13
- 已通过
- 7
- 上传者