大家来吐槽一下华为的笔试吧

RT,今晚的笔试简直爆炸,第二题输入输出是什么鬼,第三题没看懂。。。

顺便问一下,多少分能有面试机会?
#华为#
全部评论
// 贴个代码吧... #ifdef LOCAL #include <fstream> #endif //#ifdef LOCAL #include <cstdio> #include <cstring> #include <map> #include <queue> #include <unordered_map> #include <vector> //#else //#include <bits/stdc++.h> //#endif #define INF 0x7FFFFFFF using namespace std; typedef long long LL; inline void read(LL&a){char c;while(!(((c=getchar())>='0')&&(c<='9')));a=c-'0';while(((c=getchar())>='0')&&(c<='9'))(a*=10)+=c-'0';} class Dependency { public: void AddDependency(unsigned int ModuleId, unsigned int DependModuleId) { if (degree.find(ModuleId) == degree.end()) { degree[ModuleId] = 0; } if (degree.find(DependModuleId) == degree.end()) { degree[DependModuleId] = 0; } ++degree[DependModuleId]; Graph[ModuleId].push_back(DependModuleId); } void CalcDependency() { for (map<int, int>::iterator it = degree.begin(); it != degree.end(); ++it) { if (it->second == 0) { que.push(it->first); degree[it->first] = -1; } } while (!que.empty()) { int x = que.front(); que.pop(); for (int i = 0; i < Graph[x].size(); ++i) { --degree[Graph[x][i]]; if (degree[Graph[x][i]] == 0) { que.push(Graph[x][i]); degree[Graph[x][i]] = -1; } } } } bool MouldelsCycularDependency(unsigned int ModuleId) { if (degree[ModuleId] > 0) return false; return true; } void clear(void) { degree.clear(); Graph.clear(); } queue<int> que; map<int, int> degree; unordered_map<int, vector<int>> Graph; }; int main() { #ifdef LOCAL freopen("input.txt", "r", stdin); #endif Dependency dep; int a, b; while (scanf("{%x, %x}", &a, &b) != EOF) { dep.AddDependency(a, b); char ch = getchar(); if (ch != ',') break; getchar(); } dep.CalcDependency(); vector<pair<int, int>> ans; for (map<int, int>::iterator iter = dep.degree.begin(); iter != dep.degree.end(); ++iter) { //if (iter->second > 0) printf("(0x%.02x, true)\n", iter->first); //else printf("(0x%.02x, false)\n", iter->first); ans.push_back(make_pair(iter->first, iter->second)); } for (int i = 0; i < ans.size(); ++i) { if (ans[i].second != -1) printf("{0x%.02x, true}", ans[i].first); else printf("{0x%.02x, false}", ans[i].first); if (i != ans.size()-1) printf(",\n"); else printf("\n"); } return 0; }
2 回复
分享
发布于 2017-08-16 21:09
华为机试100分就算过,剩下的看面试表现。只要总分算出来有100分就有面试机会,如果学校比较好的话。分值大约为该题分值乘以通过率,累加,所以往年就算只有第一题全ac,也是可以面试的
点赞 回复
分享
发布于 2017-08-16 22:03
春招专场
校招火热招聘中
官网直投
都sp了还在这里吐槽。。。唉。。。
2 回复
分享
发布于 2017-08-28 10:59
100 80第三题太长不看
点赞 回复
分享
发布于 2017-08-16 21:25
现在笔试的是优招的吗?
1 回复
分享
发布于 2017-08-17 12:05
第二题 //用弗洛伊德算法思想 #include <iostream> #include <string> #include <vector> #include <algorithm> #include <map> using namespace std; vector<int> label; vector<int> dataIndex; void AddDependency(unsigned int Moduled, unsigned int DeModuled) { for(int i = 0; i < label.size(); ++i) { if(Moduled == label[i]) { dataIndex.push_back(Moduled); break; } } for(int j = 0; j < label.size(); ++j) { if(DeModuled == label[j]) { dataIndex.push_back(DeModuled); break; } } } int main() { vector<string> input; vector<int> result; string temp; while(getline(cin, temp)) { input.push_back(temp); } int len = input.size(); for(int i = 0; i < len; i++) { temp = input[i]; int k = 3; int num = 0; while(temp[k] != ',') { if(temp[k] >= '0' && temp[k] <= '9') { num = num * 16 + temp[k] - '0'; k++; } else { num = num * 16 + temp[k] - 'a'; k++; } } result.push_back(num); num = 0; k = k + 4; while(temp[k] != '}') { if(temp[k] >= '0' && temp[k] <= '9') { num = num * 16 + temp[k] - '0'; k++; } else { num = num * 16 + temp[k] - 'a'; k++; } } result.push_back(num); num = 0; } vector<int> result_temp(result); sort(result_temp.begin(), result_temp.end()); label.push_back(result_temp[0]); for(int i = 1; i < result_temp.size(); i++) { if(result_temp[i] != result_temp[i-1]) label.push_back(result_temp[i]); } for(int i = 0; i < result.size()-1; i += 2) { AddDependency(result[i], result[i+1]); } int **arr = new int*[label.size()]; for(int i = 0; i < label.size(); i++) arr[i] = new int[label.size()]; //初始化数组为全0; for(int i = 0; i < label.size(); i++) for(int j = 0; j < label.size(); j++) arr[i][j] = 0; for(int i = 0; i < result.size()-1; i += 2) { arr[dataIndex[i]-1][dataIndex[i+1]-1] = 1; } for(int i = 0; i < label.size(); i++) { for(int j = 0; j < label.size(); j++) { for(int k = 0; k < label.size(); k++) { if(arr[j][i] == 1 && arr[i][k] == 1) { arr[j][k] = 1; } } } } //输出的格式没有调 for(int i = 0; i < label.size(); ++i) { if(arr[i][i] == 1) cout << label[i] << endl; } //最后需要释放内存 return 0; }
点赞 回复
分享
发布于 2017-08-17 17:07
第一题本地通过,但牛客上始终0%,不知道什么鬼,看来面试机会都没有了
4 回复
分享
发布于 2017-08-16 21:16
第二题真是个鬼,第三题死活33%,然后就上不去了
点赞 回复
分享
发布于 2017-08-16 21:11
题面感觉是从哪复制只来的,乱的一匹,都tm是些带坑的题,而且还不知道是些啥奇葩坑
点赞 回复
分享
发布于 2017-08-16 21:12
100%,60%,33%,第一题挺简单,后面的感觉就是个坑
点赞 回复
分享
发布于 2017-08-16 21:14
100%,80%,33%,感觉跪了,第二题自己是拓扑排序,觉得没问题,后来看到还有20%的样例没过,觉得应该是输出顺序的问题,但来不及了,直接看第三道,做完后觉得也是ok,结果悲催的只过33%...
点赞 回复
分享
发布于 2017-08-16 21:15
100%,放弃,33.333%
点赞 回复
分享
发布于 2017-08-16 21:20
100 40 66.3 真变态
点赞 回复
分享
发布于 2017-08-16 21:21
100%, 0, 66%。完蛋。
点赞 回复
分享
发布于 2017-08-16 21:23
100 没过 33.3 感觉理解个题意都费劲2333,第二题是不是个dfs自己调用自己即可?然而输入的样式分析想哭。。。。。算了一切随缘
点赞 回复
分享
发布于 2017-08-16 21:30
我的每一个节点都建立一颗树,使用BFS遍历,溢出了。。。大神们都用拓扑排序,好强。
点赞 回复
分享
发布于 2017-08-16 21:32
100,80,67
点赞 回复
分享
发布于 2017-08-16 21:59
我66 0 33.、。是不是稳挂
点赞 回复
分享
发布于 2017-08-16 22:10
问下 为啥我没有收到 华为的笔试啊 是不是 春招自动转的简历 没有机会?
点赞 回复
分享
发布于 2017-08-16 22:30
有大神说一下第一题的输入是什么形式么?死活看不懂题目啊。。。 就是一行字符串里两个数靠空格分隔还是一行一个字符串形式表示的数字啊 表示理解能力太差真心读不懂题目,本地通过,OJ上直接0%,真的这次的题目怎么连个意思都表达不清楚,是考逻辑还是考语文?
点赞 回复
分享
发布于 2017-08-16 22:49

相关推荐

投递阿里巴巴等公司10个岗位
点赞 评论 收藏
转发
点赞 5 评论
分享
牛客网
牛客企业服务