求助TLE on#4
查看原帖
求助TLE on#4
276588
lonely_cyx楼主2023/6/24 18:34
#include<bits/stdc++.h>
//#define int long long
using namespace std;
int n,k;
int s;
int a[110];
int ans=0;
long long jie(int t)
{
	long long sum=1;
	for(int i=1;i<=t;i++)
	{
		sum*=i;
	}
	return sum;
}
void dfs(int i,long long sum)
{
	//cout<<i<<" "<<sum<<" "<<k<<endl;
	if(sum>s)
	{
		//cout<<1;
		return;
	}
	if(sum==s)
	{
		ans++;
		return;
	}
	if(i>n)
	{
		return;
	}
	dfs(i+1,sum);
	dfs(i+1,sum+a[i]);
	if(a[i]<19&&k>=1)
	{
		k--;
		dfs(i+1,sum+jie(a[i]));
		k++;
	}
}
signed main()
{
	cin>>n>>k>>s;
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
	}
	dfs(1,0);
	cout<<ans;
	return 0;
}
2023/6/24 18:34
加载中...