• 给房子涂色


    是有n户人家的房子排成一排,打算把他们的房子图上颜色,有red、green、blue三种颜色,每家人涂不同的颜色要花不同的费用,而且相邻两户人家之间的颜色要不同,求最小的总花费费用。

    输入格式:

    第一行输入n

    接下来n行输入每种房子涂red green blue 颜色的价格 cost1 cost2 cost3

    输出样例:

    4

    13 23 12

    77 36 64

    44 89 76

    31 78 45

    输出样例:

    137

    输入样例:

    3

    26 40 83

    49 60 57

    13 89 99

    输出样例:

    96

    输出最小花费

    #include<iostream>
    #include<string.h>
    #include<math.h>
    
    using namespace std;
    int n,m,v; 
    int ans;
    int mod=1e9+7;
    int dp[105][105],cost[105][3];
    bool vis[105]; 
    
    int main(){
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>cost[i][0]>>cost[i][1]>>cost[i][2];
        }
        dp[0][0]=dp[0][1]=dp[0][2]=0;                        //初始状态
        for(int i=1;i<=n;i++){
            for(int j=0;j<3;j++){                                            //j 表示此时选第 j 种颜色 
                dp[i][j]=99999999;                                            
                for(int k=0;k<3;k++){                                        //k 表示上一个选 k 的颜色 用来排除选相同的颜色 
                    if(j==k){
                        continue;
                    }
                    dp[i][j]=min(dp[i-1][k]+cost[i-1][j],dp[i][j]); //因为 i要比较i-1的价格 则从 1 开始,dp[i-1][k]表示选上一个房子选k的价格 
                }                                                    //而cost从0开始,cost[i-1][j]表示选此时的房子时的价格 
            }
        }
        ans=min(min(dp[n][0],dp[n][1]),dp[n][2]);                  //从最后一个房子选不同颜色时的最小值 
        cout<<ans;
        return 0;
    }
  • 相关阅读:
    Redis使用详细教程
    Web API 强势入门指南
    log4net
    ASP.NET Web API——选择Web API还是WCF
    Hadoop RPC机制
    力扣算法:每日温度
    力扣算法:完全平方数
    力扣算法:岛屿数量
    面试总结二
    面试总结
  • 原文地址:https://www.cnblogs.com/xusi/p/12493015.html
Copyright © 2020-2023  润新知