一、选择题:
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;
}