社区讨论
0分求助
P1048[NOIP 2005 普及组] 采药参与者 4已保存回复 5
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 5 条
- 当前快照
- 1 份
- 快照标识符
- @lo20gtj8
- 此快照首次捕获于
- 2023/10/23 05:58 2 年前
- 此快照最后确认于
- 2023/11/03 06:22 2 年前
C
#include<iostream>
#include<cstdio>
#include<iomanip>
using namespace std;
const int maxn=1005;
const int maxnx=105;
int max(int x,int y){
if(x>y){
return x;
}else{return y;
}
}
int main(){
int t,m;
cin>>t>>m;
int f[maxnx][maxn];
int time[maxnx];
int worth[maxnx];
for(int i=1;i<=m;i++){
scanf("%d%d",&time[i],&worth[i]);
}
for(int i=1;i<=m;i++){
for(int j=t;j>0;j--){
if(time[i]<=t){
f[i][j]=max(f[i-1][j],f[i-1][j-time[i]]+worth[i]);
}else
f[i][j]=f[i-1][j]; }
}
printf("%d",f[t][m]);
return 0;
}
回复
共 5 条回复,欢迎继续交流。
正在加载回复...