painting house

There are a row of houses, each house can be painted with three colors red,
blue and green. The cost of painting each house with a certain color is different.
You have to paint all the houses such that no two adjacent houses have the same color.
You have to paint the houses with minimum cost. How would you do it?
Note: Painting house-1 with red costs different from painting house-2 with red.
The costs are different for each house and each color.

一个dp,f(i,j)表示前i个house都paint了且第i个house paint成color_j的最小cost。

背包问题同 Minimum Adjustment Cost

int paint(int N, int M, int[][] cost) {
    int[][] res = new int[N+1][M];
    for (int t=0; t<M; t++) {
        res[0][t] = 0;
    }
    for (int i=1; i<N; i++) {
        for (int j=0; j<M; j++) {
            res[i][j] = Integer.MAX_VALUE;
        }
    }
    for (int i=1; i<=N; i++) {
        for (int j=0; j<M; j++) {
            for (int k=0; k<M; k++) {
                if (k != j) {
                    res[i][j] = Math.min(res[i][j], res[i-1][k]+cost[i-1][j]); //
                }
            }
        }
    }
    int result = Integer.MAX_VALUE;
    for (int t=0; t<M; t++) {
        result = Math.min(result, res[N][t]);
    }
    return result;
}

  

时间: 2024-11-09 00:41:28

painting house的相关文章

HDU - 4810 Wall Painting(组合数学)

Description Ms.Fang loves painting very much. She paints GFW(Great Funny Wall) every day. Every day before painting, she produces a wonderful color of pigments by mixing water and some bags of pigments. On the K-th day, she will select K specific bag

Cube painting UVA 253

说说:一看到给立方体染色,开始还有点小害怕.毕竟高中数学里染色问题从来都不会简单.这道题的意思就是给立方体的六个面染色,然后判断两个染了色的立方体是否一样.其实仔细一想,立方体无非三对面,若开始确定两对面.如下面图Figure 1所示:假设1,2,6,5这四个面先确定(这只有唯一一种情况)之后,再放3,4,的时候无非两种情况.但这两种情况是不一样的,这也许就是题目所说的reflection.开始的想法是找出三对面,然后比较是否相等即可,不过实在想不出怎样来排除reflection的情况.所以只能

Codeforces Round #256 (Div. 2) C. Painting Fence(分治贪心)

题目链接:http://codeforces.com/problemset/problem/448/C ---------------------------------------------------------------------------------------------------------------------------------------------------------- 欢迎光临天资小屋:http://user.qzone.qq.com/593830943

Line Painting

Line Painting Time limit: 2.0 secondMemory limit: 64 MB The segment of numerical axis from 0 to 109 is painted into white color. After that some parts of this segment are painted into black, then some into white again and so on. In total there have b

HNU13383:The Big Painting

Problem description Samuel W. E. R. Craft is an artist with a growing reputation. Unfortunately, the paintings he sells do not provide him enough money for his daily expenses plus the new supplies he needs. He had a brilliant idea yesterday when he r

Codeforces Gym 100342C Problem C. Painting Cottages 转化题意

Problem C. Painting CottagesTime Limit: 2 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/100342/attachments Description The new cottage settlement is organized near the capital of Flatland. The construction company that is building the settl

DataGridView重绘painting简单实例

private void dataGridViewX1_CellPainting(object sender, DataGridViewCellPaintingEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex>=0) { Rectangle newRect = new Rectangle(e.CellBounds.X, e.CellBounds.Y, e.CellBounds.Width - 1, e.CellBounds.

Painting and Drawing[MSDN/Windows GDI]

https://msdn.microsoft.com/en-us/library/dd162759(v=vs.85).aspx Painting and Drawing This overview describes how the system manages output to the screen and explains what applications must do to draw in a window. In particular, this overview describe

[ACM] ZOJ 3725 Painting Storages (DP计数+组合)

Painting Storages Time Limit: 2 Seconds      Memory Limit: 65536 KB There is a straight highway with N storages alongside it labeled by 1,2,3,...,N. Bob asks you to paint all storages with two colors: red and blue. Each storage will be painted with e

ural 1019 Line Painting(线段树)

题目链接:ural 1019 Line Painting 题目大意:一个0~1e9的区间,初始都是白的,现进行N次操作,每次将一段区间图上一中颜色.最后问说连续最长的白色区间. 解题思路:线段树区间合并,每个节点即维护一个区间,很经典.注意坐标需要离散化,但是还是要将0和1e9放进去. #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int maxn