10.23拼多多笔试统计

hr说我笔试不通过,这算自找苦吃了,原本能做第四题的,以为三道稳过就不做了,吸取教训吧我这是。
。。。。。。。。。。。。。。。。
1 1 1 0.15 ,最后一题看着蛮简单的,但不想做了。

附第三题代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
	int n, mm;
	
	cin >> n >> mm;
	vector<int> v(mm, -2);;
	for (int i = 0; i < n; i++) {
		char c;
		int op;
		cin >> c >> op;
		if (c == '&') {
			for (int ii = 0; ii < mm; ii++) {
				if ((op >> ii) & 1) {}
				else v[ii]=0;
			}
		}
		else if (c == '|') {
			for (int ii = 0; ii < mm; ii++) {
				if ((op >> ii) & 1) v[ii] = 1;
			}
		}
		else {
			for (int ii = 0; ii < mm; ii++) {
				if ((op >> ii) & 1) {
					if (v[ii] == -2) v[ii] = -1;
					else if (v[ii] == 1) v[ii] = 0;
					else v[ii] = 1;
				}
			}
		}
	}
	int l = 0, m = 0, r = 0;
	for (auto k : v) {
		if (k == 0) l = 1;
		else if (k == 1) m = 1;
		else if (k == -1) r == 1;
	}
	int l2 = (1 << mm)-1;
	int m2 = 0, r2 = 0;
	for (int i = 0; i < mm; i++) {
		if (v[i] == 0) {
			l2 ^= (1 << i);
		}
		else if (v[i] == 1) {
			m2 |= (1 << i);
		}
		else if (v[i] == -1) {
			r2 |= (1 << i);
		}
	}
	cout << l + m + r << endl;
	if (l)cout << '&' << ' ' << l2 << endl;
	if (m) cout << '|' << ' ' << m2 << endl;
	if (r) cout << '^' << ' ' << r2 << endl;

}



#笔试题目##拼多多#
全部评论
1 1 0 1 第三题简单说下思路呗,是用数学法么?第三题看着有点难
1 回复 分享
发布于 2020-10-23 21:42
第二题的代码或思路可以给一下吗
1 回复 分享
发布于 2020-10-24 10:23
厉害,太强了
点赞 回复 分享
发布于 2020-10-23 21:20
拼多多还在笔试吗? 哪一个批次的呀?
点赞 回复 分享
发布于 2020-10-23 21:34

相关推荐

1 2 评论
分享
牛客网
牛客企业服务