首页 > 百度2021校招C++/PHP研发工程师笔试卷(9月3日)
头像
PesudoS
编辑于 2020-09-04 03:15
+ 关注

百度2021校招C++/PHP研发工程师笔试卷(9月3日)

第一道 暴力
// 暴力
#include <bits/stdc++.h>
using namespace std;

int main() {
	int T, L, n;
	cin >> T;
	while (T--) {
		cin >> L >> n;
		vector<int> left(n);
		vector<int> right(n);
		for (int i = 0; i < n; ++i) {
			cin >> left[i];
			cin >> right[i];
		}
		vector<int> res(L + 1, 0);
		for (int i = 0; i < n; ++i) {
			for (int j = left[i]; j <= right[i]; ++j) {
				++res[j];
			}
		}
		for (int i = 1; i <= L; ++i) {
			cout << res[i] << " ";
		}
		cout << endl;
	}	
}

第二道 双指针
// 双指针
#include <bits/stdc++.h>
using namespace std;

typedef pair<int, int> PAIR;

bool cmp(const PAIR& p1, const PAIR& p2) {
	return p1.first < p2.first;
}

int main() {
	int T, n, m;
	cin >> T;
	while (T--) {
		cin >> n >> m;
		vector<PAIR> a(n);
		vector<PAIR> b(m);
		int t;
		for (int i = 0; i < n; ++i) {
			cin >> t;
			a[i] = {t, i};
		}
		for (int i = 0; i < m; ++i) {
			cin >> t;
			b[i] = {t, i};
		}
		sort(a.begin(), a.end(), cmp);
		sort(b.begin(), b.end(), cmp);

		vector<int> res(n, -1);
		int i = 0, j = 0;
		while (i < n && j < m) {
			while (j < m && a[i].first > b[j].first)
				++j;
			if (j == m)
				break;
			res[a[i].second] = ++b[j].second;
			++i;
			++j;
		}
		for (int i = 0; i < n; ++i) {
			cout << res[i] << " ";
		}
		cout << endl;
	}	
}

第三道 dfs + 状态保存(可以替换成动态规划)
#include <bits/stdc++.h>
using namespace std;
const int mod = 1e9+7;

// n: 台阶总数
// m: 单步跨越最多m级台阶
int n, m;
int dfs(int pre2, int pre1, int r, vector<vector<vector<int>>>& dp) {
	if (r == 0)
		return 1;
	if (r < 0)
		return 0;
	if (dp[pre2][pre1][r] != -1)
		return dp[pre2][pre1][r]; 
	int res = 0;
	for (int i = 1; i <= min(m, r); ++i) {
		if (i != pre1 && i != pre2) {
			res = (res + dfs(pre1, i, r - i, dp)) % mod;
		}
	}
	return dp[pre2][pre1][r] = res;
}

int main() {
	cin >> n >> m;
	vector<vector<vector<int>>> dp(m + 1, vector<vector<int>>(m + 1, vector<int>(n + 1, -1)));
	cout << dfs(0, 0, n, dp) << endl;
    return 0;
}


全部评论

(15) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐