嘉嘉
Nice to meet you lol
嘉嘉的博客

洛谷CF1744A题解

AI Summary

这篇文章介绍了一道判断数组和字符串组合是否合法的题目。通过建立一个映射数组记录数组元素与对应字符的关系,确保每个元素对应一致的字母,若出现冲突则输出NO,否则输出YES。提供了详细的思路和代码实现,核心思路简洁高效。

链接:CF1744A

解释

这道题目就是说每个测试都有一个数组和一个同样长的字符串,每次可以把数组中的一个数批量换成一个小写英文字母,问给定的组合是否合法?

思路

建一个数组$x$,相当于一个表,在 $x_i$ 上记录 $i$。表示的字母,只要以后读到 $x_i$ 上的值不等于当前的就直接 NO

代码

时间 15ms

// LUOGU_RID: 91222907
#include<iostream>
using namespace std;
void s() {
    int n;
    cin >> n;
    int z[n];

    for (int i = 0; i < n; i++) cin >> z[i];

    string st;
    cin >> st;
    int map[55];

    for (int i = 0; i < 55; i++) map[i] = -1;

    for (int i = 0; i < n; i++) {
        if (map[z[i]] == -1) {
            map[z[i]] = st[i] - 'a';
        } else {
            if (map[z[i]] != st[i] - 'a') {
                cout << "NO" << endl;
                return;
            }
        }
    }

    cout << "YES" << endl;
}
int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    int n;
    cin >> n;

    while (n--) {
        s();
    }

    return 0;
}

我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=32jh0ae4lqsko

没有标签
首页      信息      洛谷CF1744A题解
justin的头像

justin

文章作者

发表回复

textsms
account_circle
email

  • 腾讯云开发者社区的头像
    腾讯云开发者社区

    您好~我是腾讯云开发者社区运营,关注了您分享的技术文章,觉得内容很棒,我们诚挚邀请您加入腾讯云自媒体分享计划。完整福利和申请地址请见:https://cloud.tencent.com/developer/support-plan
    作者申请此计划后将作者的文章进行搬迁同步到社区的专栏下,你只需要简单填写一下表单申请即可,我们会给作者提供包括流量、云服务器等,另外还有些周边礼物。∠( ᐛ 」∠)_

    3 年前 回复

嘉嘉的博客

洛谷CF1744A题解
这篇文章介绍了一道判断数组和字符串组合是否合法的题目。通过建立一个映射数组记录数组元素与对应字符的关系,确保每个元素对应一致的字母,若出现冲突则输出NO,否则输出YES。提供了详细的思路和代码实现,核心思路简洁高效。
扫描二维码继续阅读
2022-10-23