国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

C++ 算法競賽、01 周賽篇 | AcWing 第1場周賽

這篇具有很好參考價值的文章主要介紹了C++ 算法競賽、01 周賽篇 | AcWing 第1場周賽。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

AcWing 第1場周賽

競賽 - AcWing

3577 選擇數(shù)字

3577. 選擇數(shù)字 - AcWing題庫

樸素

暴力兩層循環(huán)

#include <cstdio>
#include <iostream>
#include <unordered_set>

using namespace std;

const int N = 101;
int a[N], b[N];

int main() {
    int n, m;
    cin >> n;
    unordered_set<int> s;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        s.insert(a[i]);
    }
    cin >> m;
    for (int i = 0; i < m; i++) {
        cin >> b[i];
        s.insert(b[i]);
    }
    // ^ 兩層遍歷
    for (int i = 0; i < n; i++)
        for (int k = 0; k < m; k++) {
            if (!s.count(a[i] + b[k])) {
                cout << a[i] << " " << b[k] << endl;
                return 0;
            }
        }

    return 0;
}

優(yōu)美

兩個數(shù)組的最大值相加一定是新數(shù)

#include <algorithm>
#include <cstdio>
#include <iostream>

using namespace std;

const int N = 101;
int a[N], b[N];

int main() {
    int n, m, a_max = 0, b_max = 0;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> a[i];
        a_max = max(a[i], a_max);
    }
    cin >> m;
    for (int i = 0; i < m; i++) {
        cin >> b[i];
        b_max = max(b[i], b_max);
    }
    cout << a_max << " " << b_max;
    return 0;
}

3578 ?最大中位數(shù)

3578. 最大中位數(shù) - AcWing題庫

整數(shù)二分問題。求中位數(shù),并依次遞增,計算所需的操作次數(shù)。求最后一個操作次數(shù)總和 <= k 的中位數(shù)值

  • 如果 mid - a[i] < 0 ,意味著該數(shù)比中位數(shù)大,不需要操作
  • int 范圍 2.174e9,二分過程中計算 (l+r) 可能超過 2.174e9,改用 long 存儲
#include <algorithm>
#include <iostream>

using namespace std;

const int N = 2e5 + 10;
int a[N], n;
long k;

long check(long mid) {
    long res = 0;
    for (int i = n >> 1; i < n; i++) {
        res += (mid - a[i] > 0 ? mid - a[i] : 0);
    }
    return res;
}

int main() {
    cin >> n >> k;
    for (int i = 0; i < n; i++) scanf("%d", &a[i]);
    sort(a, a + n);
    long l = a[n >> 1], r = 2e9;
    while (l < r) {
        long mid = l + r + 1 >> 1;
        if (check(mid) <= k)
            l = mid;
        else
            r = mid - 1;
    }
    cout << l;
    return 0;
}

2579 ??數(shù)字移動

AcWing 3579. 數(shù)字移動 - AcWing

每個點的出度和入度都為 1,每組交換都會形成一個閉環(huán)。每個環(huán)的節(jié)點數(shù)就是每個元素回到原來位置需要經(jīng)過的交換次數(shù)

采用并查集維護各個連通塊(環(huán))的連通性,然后在并查集的根節(jié)點額外維護該并查集的節(jié)點個數(shù)

難點文章來源地址http://www.zghlxwxcb.cn/news/detail-695074.html

  • 合并兩個根節(jié)點的時候,把其中一個根節(jié)點維護的并查集元素數(shù)量s[pu]累加到另一個并查集的根節(jié)點中
  • 最后輸出包含 i 的連通塊數(shù)量,也就是 s[find(i)]
#include <algorithm>
#include <cstring>
#include <iostream>

using namespace std;
const int N = 2e5 + 10;
int p[N], s[N];  // s 記錄每個連通塊的數(shù)量
int t, n;

int find(int u) {
    if (p[u] != u) p[u] = find(p[u]);
    return p[u];
}

int main() {
    cin.tie(0);
    cin >> t;
    while (t--) {
        cin >> n;
        for (int i = 1; i <= n; i++) {
            p[i] = i;
            s[i] = 1;
        }
        for (int u = 1; u <= n; u++) {
            int x;
            cin >> x;
            int px = find(x), pu = find(u); 
            if (px != pu) { // 使px跟pu在同一個連通塊
                s[px] += s[pu];
                p[pu] = px;
            }
        }
        for (int i = 1; i <= n; i++) {
            cout << s[find(i)] << " ";
        }
        cout << endl;
    }

    return 0;
}

到了這里,關(guān)于C++ 算法競賽、01 周賽篇 | AcWing 第1場周賽的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • C++ 算法競賽、06 周賽篇 | AcWing 第97場周賽

    4944. 熱身計算 - AcWing題庫 4944. 熱身計算 - AcWing題庫 4945. 比大小 - AcWing題庫 考查K進制轉(zhuǎn)換十進制 4946. 葉子節(jié)點 - AcWing題庫 無向邊要開兩倍點數(shù)的數(shù)組,見常量 M cnt 統(tǒng)計每個有效葉子節(jié)點的個數(shù) st 記錄遍歷過的點,讓每個點只遍歷一次 dfs count 統(tǒng)計還有幾條邊沒走,0 條則為

    2024年02月09日
    瀏覽(68)
  • C++ 算法競賽、05 周賽篇 | AcWing 第85場周賽

    競賽 - AcWing 4791. 死或生 - AcWing題庫 簡單題 4792. 最大價值 - AcWing題庫 貪心,先找到最大價值的字母,往最后面插最大的 4793. 危險程度 - AcWing題庫 把圖分成若干個連通塊,每個連通塊假設(shè)有 k 個點,最多會反應(yīng) k - 1 次 因此題目轉(zhuǎn)變?yōu)榍筮B通塊數(shù)量,假設(shè)為 t,答案就是 (2^

    2024年02月09日
    瀏覽(51)
  • C++ 算法競賽、07 周賽篇 | AcWing 第120場周賽

    競賽 - AcWing 5146. 最大GCD - AcWing題庫 不難發(fā)現(xiàn),最大公約數(shù)的條件是 (GCD(lfloor frac{n}{2} rfloor ,lfloor frac{n}{2} rfloor * 2)) 5147. 數(shù)量 - AcWing題庫 不含 4 和 7 以外 (Rightarrow) 只含 4 和 7,每位只有兩種情況,最多到 1e9,即 (2^9) 個情況,爆搜枚舉即可 AcWing 5148. 字符串匹配 -

    2024年02月08日
    瀏覽(54)
  • 【藍橋杯集訓·周賽】AcWing 第94場周賽

    4870. 裝物品 已知,每個背包最多可以裝 5 件物品。 請你計算, 要裝下 x 件物品最少需要多少個背包 。 輸入格式 一個整數(shù) x。 輸出格式 一個整數(shù),表示所需背包的最少數(shù)量。 數(shù)據(jù)范圍 所有測試點滿足 1≤x≤10 6 。 輸入樣例1 : 輸出樣例1 : 輸入樣例2 : 輸出樣例2 : 我的

    2023年04月08日
    瀏覽(33)
  • AcWing.第121場周賽

    以下是acwing第121場比賽的abc三題 競賽 - AcWing 5149. 簡單計算 - AcWing題庫 直接模擬,用floor()函數(shù)來實現(xiàn)下取整 5150. 頂牛 - AcWing題庫 如果沒出現(xiàn)a[i][j] = 1 || a[i][j] =??3,那么代表i牛是滿足題目條件的; 這樣模擬即可! 5151. 程序調(diào)用 - AcWing題庫 用hsah表實現(xiàn)模擬,否則會超時!!!

    2024年02月07日
    瀏覽(31)
  • 【算法】力扣第 284 場周賽(最短代碼)

    看數(shù)據(jù)范圍 1 = nums.length = 1000 ,直接暴力 2行 搞定 看數(shù)據(jù)范圍 1 = n = 1000 ,每個工件最多只覆蓋4個單元格,直接哈希+暴力, 2行搞定 這題比較吃細節(jié),推薦大家看一下靈茶山艾府大佬的題解, 1行 就搞定了 三次dijkstra,可可也是看了題解之后才做出來, 15行 解法?? T4罰坐一

    2024年02月13日
    瀏覽(26)
  • 第380場周賽挑戰(zhàn):二分,數(shù)位dp和KMP算法的綜合運用

    第380場周賽挑戰(zhàn):二分,數(shù)位dp和KMP算法的綜合運用

    比賽地址 卡在第三題了,應(yīng)該看看第4題kmp套模版的 二分查找 : findMaximumNumber 函數(shù)使用二分查找法來查找符合條件的最大 num 。它初始化左邊界 left 為 0,右邊界 right 為 (k + 1) (x - 1) 。這個右邊界是一個估計值,確保 num 的上界足夠高。二分查找在滿足條件 left + 1 right 的情況

    2024年02月02日
    瀏覽(30)
  • 軟通杯算法競賽--周賽題目(一)

    軟通杯算法競賽--周賽題目(一)

    目錄 一、S屬性大爆發(fā) 二、日期杯 三、 三人行必由我?guī)??四、集合之差 五、咱們計算機不懂烷烴 六、適度跑步健康長壽 測試用例 輸出案例 輸入案例: 輸出案例: 輸入案例: 輸出案例: 輸入案例: ?輸出案例: 測試案例: 輸出案例: 輸入輸出案例: ?

    2024年02月05日
    瀏覽(24)
  • 【力扣周賽】第357場周賽

    題目描述 描述:你的筆記本鍵盤存在故障,每當你在上面輸入字符 ‘i’ 時,它會反轉(zhuǎn)你所寫的字符串。而輸入其他字符則可以正常工作。 給你一個下標從 0 開始的字符串 s ,請你用故障鍵盤依次輸入每個字符。 返回最終筆記本屏幕上輸出的字符串。 示例 1: 示例 2: 提示

    2024年02月13日
    瀏覽(21)
  • 【力扣周賽】第 352 場周賽

    【力扣周賽】第 352 場周賽

    第 352 場周賽 2760. 最長奇偶子數(shù)組 提示: 1 = nums.length = 100 1 = nums[i] = 100 1 = threshold = 100 因為數(shù)據(jù)范圍特別小,所以怎么暴力都是無所謂的。 繼續(xù)優(yōu)化 可以發(fā)現(xiàn),每個滿足條件的子數(shù)組是不會重疊的, 所以在枚舉 l 的時候,每次可以將下一個 l 設(shè)置成 r。 代碼如下: 2761. 和

    2024年02月12日
    瀏覽(16)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包