就A了一个点
  • 板块P1164 小A点菜
  • 楼主Jr_WoW
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/1/25 09:52
  • 上次更新2024/1/25 11:44:32
查看原帖
就A了一个点
562543
Jr_WoW楼主2024/1/25 09:52

大佬帮改(球球

#include<bits/stdc++.h>
using namespace std;
int n,m,ans;
int a[1005]={0},dp[1005][1005];
int main() {
	cin>>n>>m;
	for(int i=1;i<=n;i++) {
		cin>>a[i];
	} 
	for(int i=1;i<=n;i++) {
		for(int j=m;j>=0;j--) {
			if(j<a[i]) dp[i][j]=dp[i-2][j];
			else {
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-a[i]]+a[i]);
		        if(dp[i][j]==m) ans++;
			} 
		}
	}
	cout<<ans;
	return 0;
}
2024/1/25 09:52
加载中...