1047 - Neighbor House(简单线性DP)
2015-10-27 18:09
543 查看
题目大意:
给你n个房子,要求把房子染成R,G,B三种的一种颜色,
要求相邻的颜色不能一样。
dp[第i个房子][第j种颜色] 转移一下就行了。
给你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 [0], dp [1]),dp [2]); printf("Case %d: %d\n",cas ++, ans ); } return 0; }
相关文章推荐
- 解决懒加载的几种方法
- Ext.onReady详解
- QT5入门之23 -QT串口编程
- 使用xdebug分析thinkphp框架函数调用图
- java的基本概念
- VITA SHOP OPENCART商城自适应主题模板 ABC-0497
- LeetCode之Generate Parentheses(C++)
- 黑马程序员—基础—文件系统操作命令
- 求1的个数
- 线段树
- 32位与64位下各类型长度对比
- 家庭作业第三章
- VITA SHOP OPENCART商城自适应主题模板 ABC-0497
- HA集群之四:Corosync+Pacemaker+DRBD实现HA Mysql
- angular 继承和扩展
- thrift概述
- Oracle中绝对值小于1的小数如何显示小数点前面的0
- java 判断一个数组是否有重复值
- 无为而治-科研之路有感而发
- &和&&的区别