2018科大讯飞实习生C++笔试题目
程序员文章站
2024-03-12 15:46:14
...
一、选择题
1.下列哪些方法不可用于循环优化()
A.强度削弱
B.删除归纳变量
C.删除多余运算
D.指令调度
2.下列说法正确的是
A、一种类型当他至少提供了另一种类型的行为,则这种类型是另一种类型的子类型
B、子类型就是指派生类是基类的子类型
C、在共有继承下,派生类就是基类的子类型
D、子类型关系是不可逆的
二、编程题
1。
.
2.
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int Min = 1e10;
int num;
int sum = 0;
int res;
void dfs(vector<int>& stone, int w, int start, int cnt)
{
if (cnt == num) {
if (abs(w * 2 - sum) < Min) {
res = w;
Min = abs(w * 2 - sum);
}
}
else
{
if (start == stone.size()) return;
dfs(stone, w, start + 1, cnt);
dfs(stone, w+stone[start], start + 1, cnt+1);
}
}
int main()
{
int n;
cin >> n;
vector<int> stone(n);
for (int i = 0; i < n; i++) {
cin >> stone[i];
sum += stone[i];
}
num = n / 2;
sort(stone.begin(), stone.end());
dfs(stone, 0, 0, 0);
if (res * 2 > sum) cout << sum - res << " " << res << endl;
else cout << res << " " << sum - res << endl;
system("pause");
return 0;
}
推荐阅读