ACM PKU 1695 Magazine Delivery 三維動態規劃
http://acm.pku.edu.cn/JudgeOnline/problem?id=1695第一次做三位動態規劃,看了謝迪的《淺談動態規劃》,寫出如下程序
#include "stdio.h"
int f[33][33][33];
int d[33][33];
int maxint=99999;
void main()

{
int T,i,j,k,n,opt;
scanf("%d",&T);
while(T--)
{
scanf("%d",&n);
for(i=1;i<=n-1;i++) //讀數據
for(j=i+1;j<=n;j++)
{
scanf("%d",&d[i][j]);
d[j][i]=d[i][j];
}
for(i=1;i<=n;i++)//初始化
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
f[i][j][k]=maxint;
f[1][1][1]=0;
for(k=2;k<=n;k++)
for(i=1;i<k;i++)
for(j=1;j<k;j++)
if(f[i][j][k-1]!=maxint)
{
if(f[i][j][k-1]+d[i][k]<f[j][k-1][k])
f[j][k-1][k]=f[i][j][k-1]+d[i][k];
if(f[i][j][k-1]+d[j][k]<f[i][k-1][k])
f[i][k-1][k]=f[i][j][k-1]+d[j][k];
if(f[i][j][k-1]+d[k-1][k]<f[i][k-1][k])
f[i][j][k]=f[i][j][k-1]+d[k-1][k];
}
opt=f[1][1][n];
for(i=1;i<n;i++)
for(j=1;j<n;j++)
if(f[i][j][n]<opt)opt=f[i][j][n];
printf("%d\n",opt);





}
}本地調試成功,不過提交上去總是wa,郁悶了我一個多小時了.
唉..
不過總算是自己做了一次三維動態規劃了.希望哪個牛人可以告訴我這個程序哪里出問題了.

