Neighbor House

题目链接:http://acm.hust.edu.cn/vjudge/problem/visitOriginUrl.action?id=26767

题意:

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

案例:

Sample Input

2

4

13 23 12

77 36 64

44 89 76

31 78 45

3

26 40 83

49 60 57

13 89 99

Sample Output

Case 1: 137

Case 2: 96

思路分析:

通过两层循环,找出上下两家人房子图不同颜色花费的最小值,再经过n次的再循环,找到最后一层的最小值,即为最少花费。

需要经过相关的预处理。

源代码如下:

 1 #include<iostream>
 2 #include<cstdio>
 3 using namespace std;
 4 int main()
 5 {
 6     int T,t=0,a[22][3],d[22][5],n,m;
 7     scanf("%d",&T);
 8     while(T--)
 9     {
10         int i,j,k;
11         scanf("%d",&n);
12         for(i=0;i<n;i++)
13             scanf("%d%d%d",&a[i][0],&a[i][1],&a[i][2]);
14         for(i=0;i<=n;i++)                //预处理
15             d[i][4]=d[i][0]=20000;
16         for(i=0;i<=3;i++)
17             d[0][i]=0;                  //预处理
18         for(i=1;i<=n;i++)
19             for(j=1;j<=3;j++)
20             {
21                 m=20000;               //使m为最大值,以便第一个数绝对会替换
22                 for(k=1;k<=3;k++)
23                     if(k!=j&&d[i-1][k]+a[i-1][j-1]<m)
24                         m=d[i-1][k]+a[i-1][j-1];
25                 d[i][j]=m;
26             }
27         for(i=1;i<5;i++)
28             if(d[n][i]<d[n][0])              //找到最小值
29                 d[n][0]=d[n][i];
30         printf("Case %d: %d\n",++t,d[n][0]);
31     }
32     return 0;
33 }
时间: 2024-11-04 15:25:11

Neighbor House的相关文章

lightoj-1047 - Neighbor House(简单的线性dp)

1047 - Neighbor House PDF (English) Statistics ForumTime Limit: 0.5 second(s) Memory Limit: 32 MBThe people of Mohammadpur have decided to paint each of their houses red, green, or blue. They've also decided that no two neighboring houses will be pai

k近邻法(k-nearest neighbor, k-NN)

近邻法(-nearest neighbor, -NN)是一种基本的分类方法. 近邻法假设给定一个数据集,其中的样例类别已定.分类时,对新的样例,根据这个新样例的个最近邻的训练样例的类别,通过多数表决等方式进行预测. 因此,近邻法不具有显式的学习过程.值的选择.距离度量及分类决策规则是近邻法的三个基本要素. 近邻法于1968年由Cover和Hart提出. 给定训练集并且训练集,一共个样本,个维度,用表示数据集中的第个样本,用表示标记(类别)向量,代表第个样本的标记. 我们这时候要预测一个测试样例的

Machine Learning—k-nearest neighbor classification(k近邻分类)

印象笔记同步分享:Machine Learning-k-nearest neighbor classification(k近邻分类)

kNN(K-Nearest Neighbor)最邻近规则分类

KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近: K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或

KNN(k-nearest neighbor的缩写)又叫最近邻算法

机器学习笔记--KNN算法1 前言 Hello ,everyone. 我是小花.大四毕业,留在学校有点事情,就在这里和大家吹吹我们的狐朋狗友算法---KNN算法,为什么叫狐朋狗友算法呢,在这里我先卖个关子,且听我慢慢道来. 一 KNN算法简介 KNN(k-nearest neighbor的缩写)又叫最近邻算法.是1968年由Cover和Hart提出的一种用于分类和回归的无母数统计方法.什么叫无母统计方法呢,这里作个补充:无母统计方法又称非参数统计学,是统计学的一个分支,适用于母群体情况未明,小样

kNN(K-Nearest Neighbor)最邻近规则分类(转)

KNN最邻近规则,主要应用领域是对未知事物的识别,即判断未知事物属于哪一类,判断思想是,基于欧几里得定理,判断未知事物的特征和哪一类已知事物的的特征最接近: K最近邻(k-Nearest Neighbor,KNN)分类算法,是一个理论上比较成熟的方法,也是最简单的机器学习算法之一.该方法的思路是:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别.KNN算法中,所选择的邻居都是已经正确分类的对象.该方法在定类决策上只依据最邻近的一个或

K Nearest Neighbor 算法

K Nearest Neighbor算法又叫KNN算法,这个算法是机器学习里面一个比较经典的算法, 总体来说KNN算法是相对比较容易理解的算法.其中的K表示最接近自己的K个数据样本.KNN算法和K-Means算法不同的是,K-Means算法用来聚类,用来判断哪些东西是一个比较相近的类型,而KNN算法是用来做归类的,也就是说,有一个样本空间里的样本分成很几个类型,然后,给定一个待分类的数据,通过计算接近自己最近的K个样本来判断这个待分类数据属于哪个分类.你可以简单的理解为由那离自己最近的K个点来投

lightOJ 1047 Neighbor House (DP)

题目链接:lightOJ 1047 Neighbor House 题意:有N做房子,每个房子涂3种颜色各有一个花费,相邻的房子颜色不能一样,给N个房子涂颜色,问完成这个任务的最小花费. dp[i][j] 表示涂到第i个房子涂j颜色的最小花费. 状态转移方程:dp[i][k]=min(dp[i][k],dp[i-1][j]+p[i].c[k]); AC代码: #include <stdio.h> #include <string.h> #include <algorithm&g

LightOJ 1047 Neighbor House (DP 数字三角形变形)

1047 - Neighbor House PDF (English) Statistics Forum Time Limit: 0.5 second(s) Memory Limit: 32 MB The people of Mohammadpur have decided to paint each oftheir houses red, green, or blue. They've also decided that no two neighboringhouses will be pai

ML_聚类之Nearest neighbor search

有这么一个问题,说我在看一篇文章,觉得不错,想要从书架的众多书籍中找相类似的文章来继续阅读,这该怎么办? 于是我们想到暴力解决法,我一篇一篇的比对,找出相似的 最近邻的概念很好理解,我们通过计算知道了每一篇文章和目标文章的距离,选择距离最小的那篇作为最相近的候选文章或者距离最小的一些文章作为候选文章集. 让我们转化成更数学的表述方式:      这其实就是一个衡量相似性的问题(•?How do we measure similarity?)要完成上述想法,我们需要解决两大难题: 文档的向量化表示