LightOJ - 1047 Neighbor House(DP)
来源:互联网 发布:epub转pdf mac 编辑:程序博客网 时间:2024/05/18 01:38
题目大意:给你N个相邻的点,现在要求你将这些点染色(红,蓝,绿),使得任意相邻的点的颜色不一样,且染色的费用达到最小
解题思路:用dp[i][j]表示前i个点都染色了,且第i个点染成j的颜色需要的最小费用
则dp[i][j] = min(dp[i][k]) + val[i][j]
#include <cstdio>#include <algorithm>#include <cstring>using namespace std;const int N = 30;int mat[N][3];int dp[N][3];int n, cas = 1;void init() { scanf("%d", &n); for (int i = 0; i < n; i++) for (int j = 0; j < 3; j++) scanf("%d", &mat[i][j]);}void solve() { memset(dp, 0x3f, sizeof(dp)); dp[0][0] = mat[0][0]; dp[0][1] = mat[0][1]; dp[0][2] = mat[0][2]; for (int i = 1; i < n; i++) for (int j = 0; j < 3; j++) for (int k = 0; k < 3; k++) if (j != k) dp[i][j] = min(dp[i][j], dp[i - 1][k] + mat[i][j]); printf("Case %d: %d\n", cas++, min(min(dp[n - 1][0], dp[n - 1][1]), dp[n - 1][2]));}int main() { int test; scanf("%d", &test); while (test--) { init(); solve(); } return 0;}
0 0
- LightOJ 1047 - Neighbor House 【DP】
- lightoj 1047 Neighbor House(Dp)
- LightOJ - 1047 Neighbor House(DP)
- LightOJ 1047 - Neighbor House(DP)
- lightoj 1047 - Neighbor House DP
- 【 lightoj 1047 - Neighbor House + dp】
- lightOJ 1047 Neighbor House (DP)
- LightOJ 1047 - Neighbor House(dp)
- LightOJ 1047 - Neighbor House (dp)
- LightOj 1047 Neighbor House(基础dp)
- 【LightOJ】1047 - Neighbor House(dp)
- lightoj-1047-Neighbor House【矩阵DP】
- LightOJ 1047 - Neighbor House
- LightOJ 1047 - Neighbor House
- LightOJ 1047 Neighbor House
- lightoj 1047 - Neighbor House DP(简单线性DP)
- LightOJ 1047 Neighbor House (线性dp 类数字三角形)
- LightOJ 1047 Neighbor House (DP 数字三角形变形)
- 欢迎使用CSDN-markdown编辑器
- 使用函数找出指定范围内的完数
- 负margin的经典利用之用绝对定位来居中
- JDBC-Statement
- C# 一步一步完成一个简单的计算器 第二步---实现单目运算
- LightOJ - 1047 Neighbor House(DP)
- 我的ACM训练历程
- 【线性代数公开课MIT Linear Algebra】 第十三课 复习课
- JDBC-ResultSet之滚动结果集-光标与元数据
- Retrofit 2.0 文件上传类型错误
- Android(6)RadioButton
- 并不记得今天是第几天了
- 一道题(1)
- URL传递中文参数乱码问题