DFS直接过,没有记忆化剪纸,数据太水

P1060 [NOIP2006 普及组] 开心的金明

#错了你找我
by Jigsaw_Killer @ 2017-11-03 15:53:16


我自己随便造了一组你的都不对 2000 10 500 1 0 400 4 0 300 5 1 400 5 1 200 5 0 500 4 5 400 4 0 320 2 0 410 3 0 400 3 5 输出应该是7430 你的是5025
by Ch3lly @ 2017-11-03 16:31:25


@[麦克雷我老公](/space/show?uid=46335) 有毒吧,接下来每一行是两个数,你这是三个数。能输出7430算我输!
by HygoK67 @ 2017-12-23 16:12:29


#include<iostream> #include<algorithm> using namespace std; const int maxn=100; int n,m,maxk=0; int v[maxn],p[maxn]; void DFS(int index,int sumv,int sumc){ if(index==m){ if(sumv<=n&&sumc>maxk){ maxk=sumc; } return; } DFS(index+1,sumv,sumc); DFS(index+1,sumv+v[index],sumc+p[index]*v[index]); } int main(){ cin>>n>>m; for(int i=1;i<=m;i++){ cin>>v[i]; cin>>p[i]; } DFS(0,0,0); cout<<maxk;
by 眸°眸° Remnant @ 2018-04-03 21:21:43


代码和你的差不多,怎么就60
by 眸°眸° Remnant @ 2018-04-03 21:22:11


|