Neighbor House LightOJ

Neighbor House LightOJ - 1047

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int T,TT,n;
 6 int a[22][22],ans[22][22];
 7 int main()
 8 {
 9     int i,j,k;
10     scanf("%d",&T);
11     for(TT=1;TT<=T;TT++)
12     {
13         scanf("%d",&n);
14         for(i=1;i<=n;i++)
15             for(j=0;j<3;j++)
16                 scanf("%d",&a[i][j]);
17         memset(ans,0x3f,sizeof(ans));
18         ans[1][0]=a[1][0];
19         ans[1][1]=a[1][1];
20         ans[1][2]=a[1][2];
21         for(i=2;i<=n;i++)
22             for(j=0;j<3;j++)
23                 for(k=0;k<3;k++)
24                 {
25                     if(j==k)    continue;
26                     ans[i][j]=min(ans[i][j],ans[i-1][k]+a[i][j]);
27                 }
28         printf("Case %d: %d
",TT,*min_element(ans[n],ans[n]+3));
29     }
30     return 0;
31 }
原文地址:https://www.cnblogs.com/hehe54321/p/loj-1047.html