5 条题解

  • -1
    @ 2022-10-5 9:50:51
    #include <iostream>
    #include <algorithm>
    #include <cmath>
    #include <cstring>
    #include <cstdio>
    #include <string>
    #include <iomanip>
    #include <queue>
    #include <stack>
    #include <list>
    #include <map>
    #include <vector>
    #include <fstream>
    using namespace std;
    const int N = 1e5+10;
    const int INF = 0x3f3f3f3f;
    int maxx = -INF,n,minn = INF,v;
    int a[N];
    void dfs(int step,int sum){
    	if (sum <= v) maxx = max(maxx,sum);
    	if (sum > v or step > n) return;
    	dfs(step+1,sum+a[step]);
    	dfs(step+1,sum);
    }
    int main(){
    	cin >> v >> n;
    	for (int i = 1;i<=n;i++){
    		cin >> a[i];
    	}
    	dfs(1,0);
    	cout << v - maxx;
    	return 0;
    }
    

    信息

    ID
    1300
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    295
    已通过
    79
    上传者