讨论 / 哪里有问题啊、、
huhang1996 2013-07-07 02:56:00
点我顶贴 收藏 删除
#include<iostream>

#include<fstream>

using namespace std;

ifstream fin("hp.in");

ofstream fout("hp.out");

int a[101][101],fl,v;

int f[101][101];//放到第N个花瓶放I束花时的最大权值

int q[20000][101];

int main()

{

fin>>fl>>v;

for(int i=1;i<=fl;i++)

{

for(int j=1;j<=v;j++)

{fin>>a[i][j];

cout<<"["<<i<<"]["<<j<<"]"<<a[i][j]<<" ";}

cout<<endl;

}

for(int k=1;k<=fl;k++)

for(int i=1;i<=v;i++)

if(i>=k)

{

if(k=i)

{f[k][i]=f[k-1][i-1]+a[k][i];}

else

{

f[k][i]=f[k][i-1];

if(f[k][i]<f[k-1][i-1]+a[k][i])

{f[k][i]=f[k-1][i-1]+a[k][i];}

}

}

cout<<f[fl][v]<<endl;

int p[101];

int fx=fl,vx=v,t=0;

while((fx>0)&&(vx>0))

{

if(f[vx][fx]!=f[vx-1][fx])

{

t++;

p[t]=vx;

fx--;

}

vx--;

}

for(int i=v;i>=1;i--)

if(p[i]!=0)

cout<<p[i]<<" ";

system("pause");

return 0;

}

查看更多回复
提交回复