noip2005普及组复赛第三题采药,我的代码如下,显示第六行错了,请问错在哪?
#include<iostream>usingnamespacestd;constintmaxt=1000;constintmaxm=100;intT,M;inttime...
#include<iostream>
using namespace std;
const int maxt=1000;
const int maxm=100;
int T,M;
int time[maxm];
int value[maxm];
int maxvalue[maxt][maxm];
int getmaxvalue(int t,int num)
{
int retmaxvalue;
if(maxvalue[t][num]!=-1)
retmaxvalue=maxvalue[t][num];
else if(num==0)
{
if (t>=time[num])
retmaxvalue=value[num];
else
retmaxvalue=0;
}
else if(t>=time[num])
retmaxvalue=max(getmaxvalue((t-time[num]),num-1),getmaxvalue(t,num-1))
else
retmaxvalue=getmaxvalue(t,num-1);
maxvalue[t][num]=retmaxvalue;
return retmaxvalue;
}
int main()
{
cin>>T>>M;
int i,j;
for(i=0;i<M;i++)
cin>>time[i]>>value[i];
for(i=0;i<T;i++)
{
for(j=0;j<M;j++)
maxvalue[i][j]=-1;
}
cout<<getmaxvalue(T,M-1);
system("pause");
return 0;
} 展开
using namespace std;
const int maxt=1000;
const int maxm=100;
int T,M;
int time[maxm];
int value[maxm];
int maxvalue[maxt][maxm];
int getmaxvalue(int t,int num)
{
int retmaxvalue;
if(maxvalue[t][num]!=-1)
retmaxvalue=maxvalue[t][num];
else if(num==0)
{
if (t>=time[num])
retmaxvalue=value[num];
else
retmaxvalue=0;
}
else if(t>=time[num])
retmaxvalue=max(getmaxvalue((t-time[num]),num-1),getmaxvalue(t,num-1))
else
retmaxvalue=getmaxvalue(t,num-1);
maxvalue[t][num]=retmaxvalue;
return retmaxvalue;
}
int main()
{
cin>>T>>M;
int i,j;
for(i=0;i<M;i++)
cin>>time[i]>>value[i];
for(i=0;i<T;i++)
{
for(j=0;j<M;j++)
maxvalue[i][j]=-1;
}
cout<<getmaxvalue(T,M-1);
system("pause");
return 0;
} 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询