房屋染色
来源:互联网 发布:淘宝怎么取消手机绑定 编辑:程序博客网 时间:2024/04/19 21:06
这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。
费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。
注意事项
所有费用都是正整数
样例
costs = [[14,2,11],[11,14,5],[14,3,10]] return 10
费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。
注意事项
所有费用都是正整数
样例
costs = [[14,2,11],[11,14,5],[14,3,10]] return 10
房屋 0 蓝色, 房屋 1 绿色, 房屋 2 蓝色, 2 + 5 + 3 = 10
import java.util.Scanner;/** * 这里有n个房子在一列直线上,现在我们需要给房屋染色,分别有红色蓝色和绿色。每个房屋染不同的颜色费用也不同,你需要设计一种染色方案使得相邻的房屋颜色不同,并且费用最小。费用通过一个nx3 的矩阵给出,比如cost[0][0]表示房屋0染红色的费用,cost[1][2]表示房屋1染绿色的费用。 注意事项所有费用都是正整数样例costs = [[14,2,11],[11,14,5],[14,3,10]] return 10房屋 0 蓝色, 房屋 1 绿色, 房屋 2 蓝色, 2 + 5 + 3 = 10 * * @author Dell * */public class Test515 { public static int minCost(int[][] costs) { int n=costs.length; if(n==0) return 0; int m=3; int[][] dp=new int[n][3]; for(int j=0;j<=2;j++) { dp[0][j]=costs[0][j]; } for(int j=1;j<n;j++) { dp[j][0]=Math.min(dp[j-1][1],dp[j-1][2])+costs[j][0]; dp[j][1]=Math.min(dp[j-1][0],dp[j-1][2])+costs[j][1]; dp[j][2]=Math.min(dp[j-1][0],dp[j-1][1])+costs[j][2]; } return Math.min(dp[n-1][0], Math.min(dp[n-1][1],dp[n-1][2])); }public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); int[][] costs=new int[n][3]; for(int i=0;i<n;i++) { for(int j=0;j<3;j++) { costs[i][j]=sc.nextInt(); } } System.out.println(minCost(costs)); }}
阅读全文
0 0
- 房屋染色
- 房屋染色
- 房屋染色
- LintCode: 房屋染色 II
- LintCode:房屋染色 i
- Lintcode 房屋染色
- LintCode 房屋染色II
- lintcode -- 房屋染色
- LintCode:M-房屋染色
- lintcode房屋染色
- 房屋染色-LintCode
- 房屋染色 II-LintCode
- LINTCODE——房屋染色II
- 515.Paint House-房屋染色(中等题)
- 染色
- 染色
- 染色
- 房屋建造
- Could not find a getter for userState in class com.zj.entity.Users
- 如何使用WIN+R快速启动程序
- 什么是DOM模型
- 关于PADS层数不一致无法调用的解决办法
- 【poj 】 2407--Relatives(数论-欧拉)
- 房屋染色
- 单例模式的各个实现及其特性
- bzoj1221: [HNOI2001] 软件开发
- Java反射机制
- 一个屌丝程序猿的人生(七十一)
- RxJava 2.x 教程完整版
- MapReduce解决图N步是否可达问题
- htrace-zipkin与hadoop集成
- 用linux下的daemon函数来玩守护进程------类似于nohup ./a.out &