小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

[CF1383A] String Transformation 1 - 貪心

 怡紅公子0526 2022-12-23 發(fā)布于北京

[CF1383A] String Transformation 1 - 貪心

Description

有字符串\(A\),\(B\),每次在\(A\)中選取若干個(gè)相同的字母(設(shè)為\(x\)),改成另一個(gè)字母(設(shè)為\(y\)),需要滿足 \(x<y\),問(wèn)將A改成B的最少操作。

Solution

貪心,每次將所有沒(méi)改過(guò)的最小元素改成他所有目標(biāo)中的最小元素,然后將剩下的加入這個(gè)新元素的目標(biāo)集合中

#include <bits/stdc++.h>
using namespace std;

#define int long long

void solve()
{
    string a, b;
    int n;
    cin >> n;
    cin >> a >> b;

    vector<vector<int>> g(20);

    for (int i = 0; i < n; i++)
    {
        int x = a[i] - 'a';
        int y = b[i] - 'a';
        if (x > y)
        {
            cout << -1 << endl;
            return;
        }
        if (x < y)
        {
            g[x].push_back(y);
        }
    }

    int ans = 0;
    for (int i = 0; i < 20; i++)
    {
        sort(g[i].begin(), g[i].end());
        unique(g[i].begin(), g[i].end());
        if (g[i].size())
        {
            int m = g[i][0];
            ++ans;
            for (int j : g[i])
                if (j != m)
                    g[m].push_back(j);
        }
    }

    cout << ans << endl;
}

signed main()
{
    ios::sync_with_stdio(false);

    int t;
    cin >> t;

    while (t--)
    {
        solve();
    }
}

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多