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
输出范例:
#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;
}
大神如果能编出来最好给点注释吧,跪谢~