2018实习生在线编程测验题,C++研发岗,求大神答疑解惑

有个穷困的艺术家。他画了一幅超现实***的作品《方块手拉手》。现在他已经把图画中手拉手的一排大小不一的方块都画出来了。现在要考虑上颜色了。可惜他手中的钱并不多了。但是他是个有追求的人,他希望这幅画中每两个相邻的方块的颜色是不一样的。你能帮他计算一下把这幅画上色后,最少需要花多少钱么。

编译器版本: gcc 4.8.4

请使用标准输入输出(stdin,stdout) ;请把所有程序写在一个文件里,勿使用已禁用图形、文件、网络、系统相关的头文件和操作,如sys/stat.h , unistd.h , curl/curl.h , process.h

时间限制: 3S (C/C++以外的语言为: 5 S)   内存限制: 128M (C/C++以外的语言为: 640 M)

输入:

输入描述 输入是一个NxK的二维矩阵。N表示有几个方块,K表示有多少种颜色。这个矩阵cost[0][0]表示方块0被涂成0号颜色的花费。 输入的第一行是N,K 接下来是每一行的数据

输出:

最小的花费

输入范例:
4 3 2 3 2 9 1 4 7 8 1 2 8 3

输出范例:

6

#include <vector>

#include <iostream>

#include <sstream>

#include <string>

#include <vector>

#include <limits.h>

using namespace std;

 

/** 请完成下面这个函数,实现题目要求的功能 **/

 /** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^  **/

int minCost(vector<vector<int>>& costs)

{

      

}

 

int main()

{

       int N,K;

       int cost;

       vector<vector<int> > costs;

       string s;

       istringstream is;

 

       getline(cin, s);

       is.str(s);

       is>>N>>K;

       for(int i =0 ; i < N; i++)

       {

              vector<int> t;

              getline(cin, s);

              is.clear();

              is.str(s);

              for(int j = 0; j < K; j++) {

                     is >> cost;

                     t.push_back(cost);

              }

              costs.push_back(t);

       }

       cout<<minCost(costs)<<endl;

       return 0;

}

大神如果能编出来最好给点注释吧,跪谢~
#阿里巴巴#
全部评论
输入范例格式有点问题: 4 3  2 3 2  9 1 4  7 8 1  2 8 3
点赞 回复 分享
发布于 2018-03-06 21:14
大家都是一个题目哈哈 我下来了才发现自己当时写的贪心做法是错误的,具体是个dfs
点赞 回复 分享
发布于 2018-03-07 10:32
leetcode paint house 2
点赞 回复 分享
发布于 2018-03-07 16:13

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务