【笔试总结】完美世界 c++开发岗

一、选择题:

1.最短路径算法:


参考博客:

https://www.cnblogs.com/luweiseu/archive/2012/07/14/2591533.html?tdsourcetag=s_pcqq_aiomsg

选项中出现了huffman ,不选;哈夫曼树、哈夫曼编码是干嘛的??

参考博客:

2.操作系统进程管理

【笔试总结】完美世界 c++开发岗_第1张图片

 【笔试总结】完美世界 c++开发岗_第2张图片

 3.map表的插入:

void fun3()
{
	map m;
	m.insert(make_pair(3,4));
	m.insert(pair(1,3));

	map::iterator it = m.begin();
	while(it != m.end())
	{
		cout<<"it->first : "<first<<"  it->second : "<second<

 

4.int的最大值:下列输出*p的值为多少?

void fun4()
{
	int a = 0xff198202;
	int *p = &a;
	cout<<*p<

 *p  = -15105534  

a = 2147483647;

 

5.下列函数那个构成重载:

int fun6(int* arr,int a)
{
	cout<<"111"<

答:都不构成重载 ,生成的函数符号一样。

函数重载:函数同名不同参数同一作用域!

 

【笔试总结】完美世界 c++开发岗_第3张图片

二、编程:

1.01背包:

现有一个容量大小为V的背包和N件物品,每件物品有两个属性,体积和价值,请问这个背包最多能装价值为多少的物品?

输入描述:

第一行两个整数V和n。
接下来n行,每行两个整数体积和价值。1≤N≤1000,1≤V≤20000。
每件物品的体积和价值范围在[1,500]。

输出描述:

输出背包最多能装的物品价值。

示例1

输入

6 3
3 5
2 4
4 2

输出 :9

代码:

链接:https://www.nowcoder.com/questionTerminal/708f0442863a46279cce582c4f508658
来源:牛客网

#include 
using namespace std;
 
int main()
{
    int V, N;
    while (cin >> V >> N)
    {
        vector  weight(1), value(1);
        for (int i = 0; i < N; i++)
        {
            int wei, val;
            cin >> wei >> val;
            weight.push_back(wei);
            value.push_back(val);
        }
        vector result(V + 1);
        for (int i = 1; i <= N; i++)
        {
            for (int j = V; j >=0; j--)
            {
                if (j>=weight[i])
                {
                    result[j] = max(result[j], result[j - weight[i]] + value[i]);
                }
            }
        }
        cout << result[V] << endl;
    }
    return 0;
}

 

你可能感兴趣的:(刷题)