将自己历史的AC共享
zoj3119 DP题
从第i天最小归约到第i+1天
//1744228 2009-01-17 20:36:14 Accepted 3119 C++ 190 4128 green tea
#include <cstdio>
#include <algorithm>
using namespace std;
int a[1005][1005], mins[1005];
int main()
{
int c, n, i, j;
while ( scanf("%d", &c) != EOF ) {
scanf("%d", &n);
for ( i = 1; i <= n; ++i )
for ( j = i; j <= n; ++j ) {
scanf("%d", &a[i][j]);
a[i][j] += c;
}
for ( i = 1; i <= n; ++i )
mins[i] = a[1][i];
for ( i = 2; i <= n; ++i ) {
for ( j = i; j <= n; ++j )
if ( a[i][j]+mins[i-1] < mins[j] ) mins[j] = a[i][j] + mins[i-1];
}
printf("%d\n", mins[n]);
}
return 0;
}
如觉得还有问题 可参考其他相关文章