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

一、选择题:

1.最短路径算法:


参考博客:

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

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

参考博客:

2.操作系统进程管理

 

 3.map表的插入:

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

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

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

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

 *p  = -15105534  

a = 2147483647;

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

int fun6(int* arr,int a)
{
	cout<<"111"<<endl;
}
int fun6(int ptr[],int a)
{
	cout<<"222"<<endl;
}

void fun7(int a = 10)
{
}
void fun7(int a)
{

}

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

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

二、编程:

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 <bits/stdc++.h>
using namespace std;
 
int main()
{
    int V, N;
    while (cin >> V >> N)
    {
        vector <int> 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<int> 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;
}
发布了89 篇原创文章 · 获赞 68 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/zDavid_2018/article/details/100623059