请求大佬帮忙解决
查看原帖
请求大佬帮忙解决
742721
LF_LYX_SJXD楼主2023/7/11 10:40
#include<bits/stdc++.h>
//#include<string.h>
using namespace std;
const int N=1e5+6;
int n,m,num[N][2],d[N],f[N],maxx;
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>num[i][0]>>num[i][1];
	}
	for(int i=1;i<=m;i++){
		for(int j=i+1;j<=m;j++){
			if(num[i][1]<num[j][1]){
				int em1=num[i][1],em=num[i][0];
				num[i][1]=num[j][1],num[i][0]=num[j][0];
				num[j][1]=em1,num[j][0]=em;
			}
		}
	}
	for(int i=1;i<=m;i++){
		for(int j=n;j>=num[i][0];j--){
			f[j]=max(f[j],f[j-num[i][0]]*num[i][1]);
			if(maxx<f[j]){
				maxx=f[j];
			}
		}
	}
	cout<<maxx;
	return 0;
}

为什么样例输出0

2023/7/11 10:40
加载中...