如果输入数据是有序的(即给出的说明书是从小到大的)
就不考虑哈希的空间问题了,给出代码如下(已经检测,可以过Sample)
具体怎么解决hash的空间问题,我认为得用到指针
#include<fstream>
using namespace std;
ifstream fin("wadilei.in");
ofstream fout("wadilei.out");
int main()
{
int i,j,k;
int a[3010],d[3010];
int n;
int *p;
memset(d,0,sizeof(d));
fin>>n;
for(i=1;i<=n;i++)
fin>>a;
d[1]=a[1];
while(1)
{
fin>>j>>k;
if(j==0&&k==0)break;
if(d[j]+a[k]>d[k])
d[k]=d[j]+a[k];
}
k=-1;
for(i=1;i<=n;i++)
if(d>k)
k=d;
fout<<k<<endl;
return 0;
}