四个点没过,说是空间太大,是不是不能用二维数组写啊
查看原帖
四个点没过,说是空间太大,是不是不能用二维数组写啊
946604
A_xu楼主2023/3/7 20:15
#include <bits/stdc++.h>
using namespace std;

long long c[10002][10002];
long long a[10002];
long long b[10002];

int main(){
	
	long long t;
	long long m;
	
	cin>>t>>m;
	
	for(long long i = 1 ; i<=m ;i++){
		
		long long p,q;
		
		cin>>p>>q;
		
		a[i]=p;
		
		b[i]=q;
		
	}
	
	for(long long i = 1; i<=m;i++){
		
		for(long long j =1; j<=t;j++){
			
			if(j<a[i]){
				
				c[i][j]=c[i-1][j];
				
			}else{
					
					c[i][j]=max(c[i-1][j],c[i][j-a[i]]+b[i]);
					
				}
				
			}
			
		}
		
		cout<<c[m][t]<<endl;
		
	}
	
	
2023/3/7 20:15
加载中...