dfs剪枝72TLE求调
查看原帖
dfs剪枝72TLE求调
1272259
cgxd楼主2024/7/18 10:20
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n, ans, s[30005][5];
vector<int> a(1);
int dfs(int lst, int tot){
	if(tot == 3)
		return 1;
	if(s[lst][tot])
		return s[lst][tot];
	int sum = 0;
	for(int i = lst + 1; i <= n; ++i){
		if(a[i] > a[lst])
			sum += dfs(i, tot + 1);
	}return s[lst][tot] = sum;
}signed main(){
	scanf("%lld", &n);
	for(int i = 1; i <= n; ++i){
		int k;
		scanf("%lld", &k);
		a.push_back(k);
	}printf("%lld", dfs(0, 0));
	return 0;
}
2024/7/18 10:20
加载中...