为什么dfs TLE了!分明优化掉一个for!
查看原帖
为什么dfs TLE了!分明优化掉一个for!
989007
huangzhixia楼主2023/12/30 10:43

rt

code:

#include <bits/stdc++.h>
typedef long long ll;
typedef int I;
#define F1(i, k, n, u) for(I i = k; i <= n; i += u)
#define F2(i, n, k, u) for(I i = n; i >= k; i -= u)
#define sc scanf
#define pr printf
#define vd void
#define hh; puts("");
#define str string
#define wh while
using namespace std;


const int N = 1e9;

int n, m, a[101], ans;

inline void dfs(int i, int sum) {
	if (i == n + 1) {
		if (sum == m) ans += 1;
		return;
	}	
	dfs(i + 1, sum);
	dfs(i + 1, sum + a[i]);
}

int main(){
	sc("%d%d", &n, &m);
	F1(i, 1, n, 1) 
		sc("%d", &a[i]);
	dfs(1, 0);
	pr("%d\n", ans);
}



2023/12/30 10:43
加载中...