dfs测试点5超时跑了3.2s但答案是对的
void dfs(int sum, int step, int last) {
if (step > need + 1)
return ;
if (sum >= value && step == need + 1) {
ans++;
return ;
}
for (int i = last + 1; i <= n; i++) {
if (vis[i] == 0) {
vis[i] = 1;
last = i;
dp[step] = ch[i];
dfs(sum + ch[i], step + 1, last);
vis[i] = 0;
}
}
}