题目大意:
给定一个时间段n,电脑的价格c,以及电脑的维修费用m(y,z)(第y台电脑从y年用到第z年总的维修费用)。让你求出在期限n中使用电脑的最低费用。
思路:
分解为子问题:考虑最后的解必然是某个编号为j+1的电脑(0=<j<=n-1),从第j+1年开始使用到第n年,那么前面的j年就可以当成一个字问题来考虑求最低费用。
递推式如下:
dp[i]=min{dp[j]+c+m[j+1][i]}(1=<i<=n,0=<j<=i-1)
dp[n]表示n台电脑使用n年的最低费用
代码如下:
1
#include<stdio.h>
2
int dp[1005],m[1005][1005];
3
int main()
4
{
5
int c,n,i,j;
6
while(scanf("%d",&c)!=EOF)
7
{
8
scanf("%d",&n);
9
for(i=1;i<=n;i++)
10
for(j=i;j<=n;j++)
11
scanf("%d",&m[i][j]);
12
dp[0]=0;
13
for(i=1;i<=n;i++)
14
{
15
dp[i]=65535;
16
for(j=0;j<i;j++)
17
{
18
if(dp[i]>dp[j]+c+m[j+1][i])
19
dp[i]=dp[j]+c+m[j+1][i];
20
}
21
}
22
printf("%d\n",dp[n]);
23
}
24
return 0;
25
}
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
2
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
3
![](https://www.cnblogs.com/Images/OutliningIndicators/None.gif)
4
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
5
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
6
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
7
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
8
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
9
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
10
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
11
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
12
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
13
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
14
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
15
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
16
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
17
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
18
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
19
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
20
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
21
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
22
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
23
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
24
![](https://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
25
![](https://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)