2 条题解

  • 1
    @ 2025-3-14 22:11:23

    #2742. 规划食谱题解#

    本题考查搜索,乍一看貌似不怎么难,但我在做题时也不是一帆风顺。

    常见问题1:数据重复。

    一测样例,完了,数字超大,当然,函数是关键,弄好了就不会这样了。 我的代码(函数部分):

    void f(int h,int j){
    	if(h>=b){
    		g++;
    	}
    	for(int i=j;i<=a;i++){
    		if(h+d[i]<=c&&e[i]==0){
    			e[i]=1;
    			f(h+d[i],i+1);
    			e[i]=0;
    		}
    	}
    }
    

    常见问题2:数组大小。

    好不容易把函数弄好了,结果还是90分,原来数组定义也要小心!!! 我的代码(定义部分):

    int a,b,c,d[41],e[41],g;
    

    完整代码:

    #include<bits/stdc++.h>
    using namespace std;
    int a,b,c,d[41],e[41],g;
    void f(int h,int j){
    	if(h>=b){
    		g++;
    	}
    	for(int i=j;i<=a;i++){
    		if(h+d[i]<=c&&e[i]==0){
    			e[i]=1;
    			f(h+d[i],i+1);
    			e[i]=0;
    		}
    	}
    }
    int main(){
    	cin>>a>>b>>c;
    	for(int i=1;i<=a;i++){
    		cin>>d[i];
    	}
    	f(0,1);
    	cout<<g;
    	return 0;
    }
    

    喜欢的点个赞!

    信息

    ID
    2742
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    52
    已通过
    18
    上传者