最后一个MLE了
查看原帖
最后一个MLE了
615026
H2130819058楼主2022/7/30 11:00
#include<bits/stdc++.h>
using namespace std;
int m,n,dfs[100020000],k;
int fun(int a[],int b)
{
	int cnt=0,he;
	if(b==0)
	{
		if(a[b]==m) return 1;
		else if(a[b]<m)
		{
			dfs[b]=a[b];k++;
			return 0;
		}
	}
	int k1=k;
	if(a[b]==m) return 1;
	if(a[b]<m)
	{
		dfs[k++]=a[b];
		if(dfs[k-1]==m) cnt++;
		for(int i=0;i<k1;i++)
		{
			he=dfs[i]+a[b];
			if(he==m) cnt++;
			else if(he<m) dfs[k++]=he;
		}
		return cnt;
	}
	else return 0;
}
int main()
{
	int a[1001],ans=0;
	cin>>n>>m;
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i=0;i<n;i++)
	{
		ans+=fun(a,i);
	}
	cout<<ans;
	return 0;
}
2022/7/30 11:00
加载中...