2 條題解
-
0
动态规划
#include<bits/stdc++.h> using namespace std; const int N=1e4+10,M=110; int a[M],b[N],f[N];//f[i]表示走到第i关时分数的最大值。 int main() { int n,m; cin>>n>>m; for(int i=0;i<m;i++) { cin>>a[i]; } for(int i=0;i<n;i++) { cin>>b[i]; } memset(f,-0x3f,sizeof f); f[0]=0; for(int i=0;i<n;i++) { if(f[i]==-0x3f3f3f3f) { continue; } for(int j=0;j<m;j++) { int x=i+a[j]; if(x>=n) { f[n]=max(f[n],f[i]+b[i]); continue; } f[x]=max(f[x],f[i]+b[i]); } } cout<<f[n]; return 0; }
資訊
- ID
- 2540
- 時間
- 1000ms
- 記憶體
- 256MiB
- 難度
- 5
- 標籤
- (無)
- 遞交數
- 42
- 已透過
- 4
- 上傳者