求助!最后一个点TLE
  • 板块P1164 小A点菜
  • 楼主paulpao
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/8/31 12:23
  • 上次更新2023/10/27 12:59:13
查看原帖
求助!最后一个点TLE
717437
paulpao楼主2022/8/31 12:23
#include<iostream>
using namespace std;
int a[1001],n,m,cnt=0;
bool b[1001]={},cd=0;
void dfs(int money,int ab){
    if(cd) return;
	if(money==0){
    if(cnt<2147483647){
		cnt++;
		return;
    }
    else{
        cd=1;
    }
	} 
	for(int i=ab;i<=n;i++){
		if(money>=a[i]&&!b[i]){
			b[i]=1;
			dfs(money-a[i],i);
			b[i]=0;
		}
	}
	return;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	dfs(m,1);
	cout<<cnt;
	return 0;
} 
2022/8/31 12:23
加载中...