3-6租用游艇问题
2013-09-02 17:01
218 查看
本题也是简单的dp吧。和上一题是一样的思路,由底向上递推,dp的典型特征。
阶段f[i][j]表示从i到j的最少佣金。
#include <iostream>
#include <stdio.h>
using namespace std;
int f[100][100];
int main()
{
freopen("in.txt","r",stdin);
int n;
cin>>n;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<=n-1;j++)
{
cin>>f[i][j];
}
}
for(int k=2;k<n;k++)
{
for(int i=0;i<n-k;i++)
{
int j=i+k;
for(int p=i+1;p<j;p++)
{
int tmp=f[i][p]+f[p][j];
if(f[i][j]>tmp)
f[i][j]=tmp;
}
}
}
cout<<f[0][n-1]<<endl;
return 0;
}
阶段f[i][j]表示从i到j的最少佣金。
#include <iostream>
#include <stdio.h>
using namespace std;
int f[100][100];
int main()
{
freopen("in.txt","r",stdin);
int n;
cin>>n;
for(int i=0;i<n-1;i++)
{
for(int j=i+1;j<=n-1;j++)
{
cin>>f[i][j];
}
}
for(int k=2;k<n;k++)
{
for(int i=0;i<n-k;i++)
{
int j=i+k;
for(int p=i+1;p<j;p++)
{
int tmp=f[i][p]+f[p][j];
if(f[i][j]>tmp)
f[i][j]=tmp;
}
}
}
cout<<f[0][n-1]<<endl;
return 0;
}