机试

A

#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
using namespace std;
int T, arr[5], ans;
int a[5], b[5];

void DFS(int index, int now, int sum) {
	if (index == 5 && now == 3) {
		if ( sum == 0 || sum % 10 == 0 ) {
			ans = sum;
			return;
		}
	}
	if (index == 5 || now > 3 ) {
		return;
	}
	DFS(index + 1, now + 1, sum + arr[index]);
	DFS(index + 1, now, sum);
}

int main() {
	scanf("%d", &T);
	while (T--) {
		int temp=0;
		ans = -1;
		for (int i = 0; i < 5; i++) {
			scanf("%d", &arr[i]);
			temp += arr[i];
		}
		DFS(0, 0, 0);
		if (ans == -1) {
			printf("-1\n");
		}
		else printf("%d", (temp-ans)%10);
	}
	return 0;
}

B

#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
using namespace std;

int main() {
	int n, d, arr[100010], count = 1;
	int now = 0;
	scanf("%d%d", &n, &d);
	for (int i = 0; i < n; i++) {
		scanf("%d", &arr[i]);
	}
	sort(arr, arr + n);
	for (int i = 1; i < n ; i++) {
		if (arr[i] - arr[now] >= d) {
			count++;
			now = i;
		}
	}
	printf("%d", count);
	return 0;
}

C

#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
using namespace std;
const int maxn = 100010;

struct Student {
	int ai;
	int  ti;
	int  bi;
	int  begin;
	bool T = false;
}s[maxn];

int main() {
	int n, time;
	int ai, bi, ti;
	scanf("%d", &n);
	for (int i = 1; i <= n; i++) {
		scanf("%d%d%d", &ai, &ti, &bi);
		if (i == 1) time = ai;
		s[i].ai = ai;
		s[i].ti = ti;
		s[i].bi = bi;
		if (time < ai) {
			s[i].begin = ai;
			s[i].T = true;
			time = s[i].ai + s[i].ti;
		}
		else if (time <= ai + bi) {
			s[i].begin = time;
			s[i].T = true;
			time += ti;
		}
	}
	for (int i = 1; i <= n; i++) {
		if (s[i].T == true) {
			printf("%d", s[i].begin);
		}
		else printf("-1");
		if (i < n) printf(" ");
	}
	return 0;
}

D

#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
using namespace std;

struct node {
	int data;
	node *left, *right;
	node* father;
};

void insert(node* &root, int data) {
	if (root == NULL) {
		root = new node;
		root->data = data;
		root->left = root->right = NULL;
		return;
	}
	if (data < root->data) {
		insert(root->left, data);
	}
	else {
		insert(root->right, data);
	}
}

void inOrder(node* root, vector<node*>&fa, node* father) {
	if (root == NULL) {
		return;
	}
	root->father = father;
	father = root;
	inOrder(root->left, fa, father);
	fa.push_back(root);
	inOrder(root->right, fa, father);
}

vector<int> a;
vector<node*> fa;
int main() {
	int n, data;
	node* root = NULL;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &data);
		insert(root, data);
	}
	inOrder(root, fa, NULL);
	for (int i = 0; i < fa.size(); i++) {
		if (fa[i]->father == NULL) {
			printf("0");
		}
		else {
			printf("%d", fa[i]->father->data);
		}
		if (i < fa.size() - 1) printf(" ");
	}
	return 0;
}

E

#include <iostream>
#include <algorithm>
#include <fstream>
#include <cstdio>
#include <string>
#include <cstring>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <map>
#include <set>
using namespace std;
const int maxn = 1010;
int dp[maxn][10], a[maxn];

int main() {
	int n;
	scanf("%d", &n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &a[i]);
	}
	fill(dp[0], dp[0] + n * 10, 0x3fffffff); //二维数组初始化为极大值
	for (int i = 0; i < 10; i++) {
		if (i == a[0]) {
			dp[0][i] = 0;
		}
		else {
			dp[0][i] = abs(a[0] - i);
		}
	}
	for (int i = 1; i < n; i++) {
		for (int j = 0; j < 10; j++) {
			for (int k = 0; k < 10; k++) {
				dp[i][j] = min(dp[i][j], dp[i - 1][k] + abs(a[i] - j) + (j - k)*(j - k));
			}
		}
	}
	int ans = 0x3fffffff;
	for (int i = 0; i < 10; i++) {
		ans = min(ans, dp[n - 1][i]);
	}
	printf("%d", ans);
	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Office机试软件是一种辅助企业面试流程的工具,它可以提供多种功能来简化面试过程,提高效率。这种软件通常包括面试题库管理、面试预约、在线面试、评估和反馈等模块。 首先,Office机试软件可以帮助企业建立和管理面试题库。它提供一个题库管理系统,管理员可以将常见的面试题和答案录入其中,方便后续的使用。这有助于减少面试官的准备时间和工作量,提高面试效率。 其次,Office机试软件可以提供面试预约功能。应聘者可以通过软件预约面试时间,从而避免了繁琐的电话联系和沟通,节省了双方的时间。同时,面试官也可以根据软件提供的预约信息做好相应的面试准备。 第三,Office机试软件可以实现在线面试。通过网络连接,面试官和应聘者可以进行实时的视频面试。这种方式减少了面试的时间和空间限制,方便了企业和应聘者的协同工作。同时,软件还提供了屏幕共享和录制功能,方便面试官回放和评估。 最后,Office机试软件还提供面试评估和反馈功能。面试官可以在软件中对应聘者的表现进行评分和评价,记录面试过程中的关键信息。这样不仅便于面试官之间的交流和沟通,也方便了面试结果的分析和统计。 总的来说,Office机试软件是一种非常实用的工具,可以提高企业面试流程的效率和准确性。它简化了面试的准备和安排工作,优化了面试体验,为企业招聘工作提供了有力的支持。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值