蒟蒻求助
查看原帖
蒟蒻求助
1004121
pengsiqi11楼主2024/4/6 13:11

0分代码:

#include<bits/stdc++.h>
using namespace std;
long long n,m,w[110],ans,dp[10010];
bool cmp(long long a,long long b){return a>b;}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>w[i]; 
	sort(w+1,w+n+1,cmp);
	for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){ 
			if(w[i]<=j) dp[j]=max(dp[j],dp[j-w[i]]+w[i]); 
			if(dp[j]==m) ans++;
//			cout<<dp[j]<<" "; 
		} 
//		cout<<endl;
	}
	cout<<ans;
	return 0;
} 

9分代码:

#include<bits/stdc++.h>
using namespace std;
long long n,m,w[110],ans,dp[10010]={1};
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++)cin>>w[i];
	for(int i=1;i<=n;i++){
		for(int j=m;j>=1;j--){ 
			if(j>w[i]) dp[j]=max(dp[j-w[i]]+w[i],dp[j]);
		} 
	}
	cout<<dp[m];
	return 0;
} 

为什么?是不是巧合?

另:

dp[10010]={1}

为什么一些代码上dp[0]赋1呢?

2024/4/6 13:11
加载中...