顺丰笔试并查集才过了42%

求大佬贴代码#顺丰科技#
全部评论
够好了,我直接36%超时😂
点赞 回复 分享
发布于 2019-08-29 21:38
我用并查集和dfs都36%..
点赞 回复 分享
发布于 2019-08-29 21:17
我Python直接空间爆了😢
点赞 回复 分享
发布于 2019-08-29 21:11
#include<vector> #include<iostream> #include<algorithm> #include<unordered_set> #include<unordered_map> using namespace std; class Solution { public: int N, M, K; int total; vector<int> pre; void solve() { cin >> N >> M >> K; total = N; pre = vector<int>(N+M, -1); for (int i = 0; i < N; ++i) { pre[i] = i; } int rootu, rootv, u, v; for (int k = 0; k < K; ++k) { cin >> u >> v; --u, --v, v += N; if (pre[v] == -1) { pre[v] = unionsearch(u); }else{ rootu = unionsearch(u); rootv = unionsearch(v); if(rootu!=rootv){ pre[rootu] = rootv; --total; } } } cout << total - 1 << endl; } int unionsearch(int k) { int root = pre[k]; while (root != pre[root]) { root = pre[root]; } int cur_node = k, pre_node = pre[k]; while (cur_node != root) { pre[cur_node] = root; cur_node = pre_node; pre_node = pre[cur_node]; } return root; } }; int main() { Solution s; s.solve(); return 0; } 过了91%
点赞 回复 分享
发布于 2019-08-29 21:10

相关推荐

点赞 评论 收藏
分享
评论
1
5
分享

创作者周榜

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