首页 > 其他 > 详细

1047 - Neighbor House(简单线性DP)

时间:2015-10-27 19:38:30      阅读:219      评论:0      收藏:0      [点我收藏+]

题目大意:

给你n个房子,要求把房子染成R,G,B三种的一种颜色,
要求相邻的颜色不能一样。
dp[第i个房子][第j种颜色]  转移一下就行了。
 
 
 
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<queue>
#include<vector>
#include<map>
using namespace std;
typedef long long LL;
const int INF = 1e9+7;
const int MAXN = 155;
int dp[MAXN][3];///dp[第n个房子][房子的颜色]
int R[MAXN], G[MAXN], B[MAXN];
int main()
{
    int T, cas = 1, n;
    scanf("%d", &T);
    while(T --)
    {
        memset(dp, 0, sizeof(dp));
        scanf("%d", &n);

        for(int i=1; i<=n; i++)
            scanf("%d %d %d", &R[i], &G[i], &B[i]);

        for(int i=1; i<=n; i++)
        for(int j=0; j<3; j++)
        {
            dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + R[i];
            dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + G[i];
            dp[i][2] = min(dp[i-1][0], dp[i-1][1]) + B[i];
        }
        int ans = min(min(dp[n][0], dp[n][1]),dp[n][2]);
        printf("Case %d: %d\n",cas ++, ans );
    }

    return 0;
}

 

1047 - Neighbor House(简单线性DP)

原文:http://www.cnblogs.com/chenchengxun/p/4915135.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!