顺丰笔试第二题 学术交流


#笔试题目##顺丰科技##C/C++#
全部评论
//顺丰 学术交流AC代码 #include<iostream> using namespace std; typedef char VertexType; typedef int WeightType; #define MAXVEX 200002 #define MAXEDGE 100001 #define MYINFINITY 65535 int numPeople = 0, numLang = 0, numInfo = 0; int numMachine = -1; typedef struct Node {     int adjVex;     struct Node* next; }EdgeNode; typedef struct {     EdgeNode* firstEdge; }Vertex; typedef struct {     Vertex vexList[MAXVEX];     int numVertex, numEdge; }MGraph; void CreateMGraph(MGraph* G) {     G->numVertex = numPeople+numLang;     for (int i = 0; i < G->numVertex; i++)     {         G->vexList[i].firstEdge = NULL;     }     G->numEdge = numInfo;     for (int k = 0; k < G->numEdge; k++)     {         int  i = 0, j = 0;;         cin >> i >> j;         j = j + 100000;         EdgeNode* p = new(EdgeNode);         p->adjVex = j;         p->next = G->vexList[i].firstEdge;         G->vexList[i].firstEdge = p;         p = new(EdgeNode);         p->adjVex = i;         p->next = G->vexList[j].firstEdge;         G->vexList[j].firstEdge = p;     } } void DFS(MGraph& G, int i, bool* visited) //极大连通子图的深度优先遍历 {     visited[i] = true;     EdgeNode* p = G.vexList[i].firstEdge;     while (p != NULL)     {         if (visited[p->adjVex] == false)             DFS(G, p->adjVex, visited);         p = p->next;     } } void DFSTraverse(MGraph& G) //深度优先遍历 {     bool visited[MAXVEX];     for (int i = 1; i <=numPeople; i++)         visited[i] = false;     for (int i = 1; i <=numPeople; i++)         if (visited[i] == false)         {             DFS(G, i, visited);             numMachine++;         }              } int main() {     MGraph G;     cin >> numPeople >> numLang >> numInfo;     if (numInfo == 0)     {         cout <<   numPeople ;         return 0;     }           CreateMGraph(&G);     DFSTraverse(G);     cout << numMachine;     system("pause");     return 0; } 
点赞 回复 分享
发布于 2019-08-29 21:05
今天才投的顺风,没收到笔试通知,感觉这题是并查集,先遍历一遍,建好并查集,然后计算并查集的个数。所需的机器数等于并查集个数-1
点赞 回复 分享
发布于 2019-08-29 20:34
这道题我是算一下非联通区域,然后减一。 AC
点赞 回复 分享
发布于 2019-08-29 21:10
第二题终于acl了
点赞 回复 分享
发布于 2019-08-29 20:55
不会
点赞 回复 分享
发布于 2019-08-29 20:19
我好像理解错题的意思了。根据我的理解,最多只需要两个,任意两个人不能交流,只要让他们学会汉语就行了。
点赞 回复 分享
发布于 2019-08-30 11:38
这题并查集可解
点赞 回复 分享
发布于 2019-08-30 00:54
codeforces 278c 并查集 留下了没ac的泪水 这题太偏了😂😂😂
点赞 回复 分享
发布于 2019-08-29 23:50
我的想法是: m是语言数  找出 会的语言出现频次最高的那个语言就是大家用的公共语言,最大频次记为p 最后答案就是m-p 不知道对不对
点赞 回复 分享
发布于 2019-08-29 21:19
1 考虑什么都不会的,至少买一个countA 2 并查集求不同语言数需要的countB 3 return countA+countB
点赞 回复 分享
发布于 2019-08-29 21:13
并查集为什么超时了
点赞 回复 分享
发布于 2019-08-29 21:07
你的第二题,是我的第一题。。。
点赞 回复 分享
发布于 2019-08-29 21:06
为什么我做联通图然后提示我内存溢出...
点赞 回复 分享
发布于 2019-08-29 21:05
第一题只能55%,有一样的么😥😥
点赞 回复 分享
发布于 2019-08-29 21:04
两题终于都A惹,一题并查集,一题dp
点赞 回复 分享
发布于 2019-08-29 20:59
这道题咋做呀
点赞 回复 分享
发布于 2019-08-29 20:57
只通过64,第二题
点赞 回复 分享
发布于 2019-08-29 20:54
第一题AC,第二题有老哥出结果了吗
点赞 回复 分享
发布于 2019-08-29 20:51
全连通图?
点赞 回复 分享
发布于 2019-08-29 20:45
第一题有A的吗
点赞 回复 分享
发布于 2019-08-29 20:43

相关推荐

09-21 21:14
门头沟学院
否极泰来来来来:和他说:这里不好骂你,我们加个微信聊
点赞 评论 收藏
分享
评论
4
26
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务