2 条题解
-
1
#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
- 上传者