牛客春招刷题训练营-2025.5.28题解

8 活动地址: 牛客春招刷题训练营 - 编程打卡活动

简单题 小红浏览论坛

简单的判断。
统计 帖子的数量。

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, x;
    cin >> n >> x;
    int ans = 0;
    for (int i = 0; i < n; i++) {
        int a, b;
        cin >> a >> b;
        if (abs(a - b) >= x)ans++;
    }
    cout << ans << '\n';
    return 0;
}

中等题 游游的排列构造

选择不相邻的位置放置好数,肯定是放置越密越好。
在前 个位置里将好数和非好数间隔放置,好数需要尽可能大,那只需将 取值范围的数全当作好数。
考虑这么放置:
剩下的位置只需任意放置。
时间复杂度

#include <bits/stdc++.h>
using namespace std;
int main() {
    int n, k;
    cin >> n >> k;
    int tot1 = 1, tot2 = n - k + 1;
    vector<int> ans(n);
    for (int i = 0, j = 0; i < k; i++, j += 2) {
        ans[j] = tot2++;
    }
    for (int i = 0; i < n; i++) {
        if (ans[i] == 0) {
            ans[i] = tot1++;
        }
    }
    for (int i = 0; i < n; i++)cout << ans[i] << " \n"[i == n - 1];
    return 0;
}

困难题 【模板】最小生成树

使用 Kruskal 算法:每次贪心取边权最小的边,如果加上该边图中仍不存在环则将该边加入生成树中,否则跳过这条边。
时间复杂度

#include <bits/stdc++.h>
using namespace std;
struct DSU {
    vector<int> fa;
    DSU(int n) : fa(n + 1) {
        iota(fa.begin(), fa.end(), 0);
    }
    int get(int x) {
        while (x != fa[x]) {
            x = fa[x] = fa[fa[x]];
        }
        return x;
    }
    bool merge(int x, int y) {
        x = get(x), y = get(y);
        if (x == y) return false;
        fa[y] = x;
        return true;
    }
    bool same(int x, int y) {
        return get(x) == get(y);
    }
};
int main() {
    int n, m;
    cin >> n >> m;
    vector<array<long long, 4>> ver;
    for (int i = 1; i <= m; i++) {
        int u, v, w;
        cin >> u >> v >> w;
        ver.push_back({u, v, w, i});
    }
    sort(ver.begin(), ver.end(), [&](auto & x, auto & y) {
        return x[2] < y[2];
    });
    vector<int> idx;
    long long ans = 0;
    DSU dsu(n);
    for (auto [x, y, w, i] : ver) {
        if (dsu.same(x, y)) continue;
        dsu.merge(x, y);
        ans += w;
        idx.push_back(i);
    }
    cout << ans << '\n';
    for (auto it : idx)cout << it << ' ';
    return 0;
}
#牛客春招刷题训练营#
全部评论

相关推荐

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

创作者周榜

更多
牛客网
牛客企业服务