萌新刚学 dfs 求助
  • 板块P1441 砝码称重
  • 楼主Aerov
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/8/8 22:26
  • 上次更新2023/11/3 05:05:16
查看原帖
萌新刚学 dfs 求助
339746
Aerov楼主2023/8/8 22:26

乱搞做法

#include<bits/stdc++.h>
using namespace std;
int n,m;
int arr[25];
bool pack[2010];
int ans=0;
void dfs(int p,int num,int sum){
    if(n-num<m)
       return;
    if(p>n)
        return;
    pack[sum]=1;
    dfs(p+1,num,sum);
    dfs(p+1,num+1,sum+arr[p]);
}
int main(){
    scanf("%d%d",&n,&m);
    for(int i=1;i<=n;i++)
        scanf("%d",&arr[i]);
    dfs(1,0,0);
    for(int i=1;i<=2005;i++){
        if(pack[i]){
            ans++;
        }
    }
    printf("%d\n",ans);
    return 0;
}
2023/8/8 22:26
加载中...