社区讨论

老师上课教的,有没有一维写法???

P1048[NOIP 2005 普及组] 采药参与者 3已保存回复 6

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
6 条
当前快照
1 份
快照标识符
@misw1qyt
此快照首次捕获于
2025/12/05 21:16
2 个月前
此快照最后确认于
2025/12/07 15:30
2 个月前
查看原帖
老师上课教的,有没有一维写法??? 题解的又看不太懂
CPP
#include<bits/stdc++.h>
using namespace std;
int t[105],w[105],dp[105][1005];
int main(){
	int T,M;
	cin>>T>>M;
	for(int i=1;i<=M;i++)cin>>t[i]>>w[i];
	for(int i=1;i<=M;i++){
		for(int j=0;j<=T;j++){
			dp[i][j]=dp[i-1][j];
			if(j>=t[i])
				dp[i][j]=max(dp[i][j],dp[i-1][j-t[i]]+w[i]);
		}
	}
	cout<<dp[M][T]<<endl;
	return 0;
}

回复

6 条回复,欢迎继续交流。

正在加载回复...