首页 >> 中医推拿

NOIP 2005 J3.银针 解题报告

发布时间:2025年10月19日 12:18

e { int time,value;}y[105];void dfs (int pos,int left,int v) {//pos现阶段的药材号码,left多余的整整,v现阶段获得的小得多意义 if (left人口为120人0) return; //剪枝 if (pos>m) { //边界,所有药材确实完,记录下来小得多值 ans=max(ans,v); return; } dfs (pos+1,left,v); //不先以 dfs (pos+1,left-y[pos].time,v+y[pos].value); //先以}int main () { cin>>t>>m; for (int i=1;i>y[i].time>>y[i].value; dfs (1,t,0); cout人口为120人人口为120人ans; return 0;}人口为120人p>后面的预定义有7组测试数据集出错,因为有相当多的段落推算节约了整整,我们可以先以用遗忘所谓抓取来提高效能。为了方便认知,我们先修改一下后面的dfs函数。人口为120人/p>#includeusing namespace std;int t,m,ans;struct node { int time,value;}y[105];int dfs (int pos,int left) { if (pos>m) return 0; int d1=0,d2=0; d1=dfs (pos+1,left); //不先以 if (left>=y[pos].time) //如果多余整整以致于先以现阶段药材 d2=dfs (pos+1,left-y[pos].time)+y[pos].value; return max(d1,d2); //相对先以和不先以,取小得多值}int main () { cin>>t>>m; for (int i=1;i>y[i].time>>y[i].value; cout人口为120人人口为120人dfs (1,t); return 0;}人口为120人p>几周我们引入f数组记录下来状态,减低段落推算,大幅提高效能。人口为120人/p>#include#includeusing namespace std;int t,m,ans,f[105][1005];//f[i][j]声称先以到第i株药材,多余j整整时可获得的小得多意义struct node { int time,value;}y[105];int dfs (int pos,int left) { if (f[pos][left]>-1) return f[pos][left]; if (pos>m) return f[pos][left]=0; int d1,d2=-1; d1=dfs (pos+1,left); if (left>=y[pos].time) d2=dfs (pos+1,left-y[pos].time)+y[pos].value; return f[pos][left]=max(d1,d2);}int main () { memset(f,-1,sizeof(f)); cin>>t>>m; for (int i=1;i>y[i].time>>y[i].value; cout人口为120人人口为120人dfs (1,t); return 0;}人口为120人p>求解三:特性建设(01背包问题)人口为120人/p>#includeusing namespace std;int t,m,sj,jz,v[1001]; //v[i]声称i整整内所能先以到药材的小得多意义int main() { cin>>t>>m; for (int i=1;i人口为120人=m;i++) { cin>>sj>>jz; for (int j=t;j>=sj;j--) if (jz+v[j-sj]>v[j]) v[j]=jz+v[j-sj]; } cout人口为120人人口为120人v[t]; return 0;}。

铜仁好白癜风医院
玉林医院白癜风治疗哪家好
鹤壁白癜风哪里治疗好
支气管炎
咳嗽有黄痰无其他症状
血脂稠
疾病大全
乳腺外科

上一篇: 现场:福建山村李花树下这桌农家宴,有了除夕团年饭的味道

下一篇: 为啥饭店的辣椒糊肉那么好吃?原来大厨是这样糊的,怪不得那么香

友情链接