怎么只有70分 ,
查看原帖
怎么只有70分 ,
99009
cl258楼主2021/4/3 21:15
#include<stdio.h>
#include<math.h>
int  max(int  a,int  b){
	return (a>b)?a:b;
}
int main(){
	int t,m;
	scanf("%d%d",&t,&m);
	int q,i,j;
long long  load[m+21][t+21];
int time[10005]={0};
int worth[10005]={0}; 
 	for ( q=1;q<=m;q++){
 		scanf("%d%d",&time[q],&worth[q]);
	 }
	for ( i=1;i<=m;i++){
		for ( j=t;j>=1;j--){
			load[i][j]=load[i-1][j];
			if (j>=time[i]){
				long long  k=j/time[i];
				load[i][j]=max(load[i-1][j],load[i-1][j-k*time[i]]+k*worth[i]);
			}
		}
	}
	printf("%lld",load[m][t]);
	return 0;
} 
2021/4/3 21:15
加载中...