求助大佬,老师代码看不懂
查看原帖
求助大佬,老师代码看不懂
374347
Wander_E楼主2021/2/15 20:07

这里的dp数组是什么意思?

#include<bits/stdc++.h>
using namespace std;
int t;
int a[101];
int dp[25010];
int main() {
    scanf("%d",&t);
    while (t--) {
        int n;
        scanf("%d",&n);
        for (int i = 1; i <= n ; i ++ ) scanf("%d",a+i);
        sort(a+1,a+n+1);
        memset(dp,0,sizeof(dp));
        dp[0]=1;
        int ans = 0;
        for (int i = 1 ;i <= n ; i ++ ) {
            if (dp[a[i]]) continue;
            ans++;
            for (int j = a[i];j <= a[n]; j++)
                dp[j]|=dp[j-a[i]];
        }
        cout<<ans<<endl;
    }
    return 0;
}
2021/2/15 20:07
加载中...