zoukankan      html  css  js  c++  java
  • 「CF1287B」Hyperset

    传送门

    不难发现如果我们确定了三个串中的其中两个,那么合法的第三个串就是唯一的。

    那么我们考虑枚举两个串 (i, j),设对应的唯一合法第三串为 (k),那么我们就只要算 (i) 前面有几个 (k) 就好了。

    这个东西开个 map 就好了。

    参考代码:

    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <map>
    using namespace std;
    
    const int _ = 1505;
    
    int n, k; string s[_]; map < string, int > t;
    
    int main() {
    #ifndef ONLINE_JUDGE
        freopen("cpp.in", "r", stdin), freopen("cpp.out", "w", stdout);
    #endif
        scanf("%d %d", &n, &k);
        for (int i = 1; i <= n; ++i) cin >> s[i];
        long long ans = 0;
        for (int i = 1; i <= n; ++i) {
            for (int j = i + 1; j <= n; ++j) {
                string str = "";
                for (int o = 0; o < k; ++o) {
                    if (s[i][o] == s[j][o]) str += s[i][o];
                    else {
                        if (s[i][o] != 'S' && s[j][o] != 'S') str += 'S';
                        if (s[i][o] != 'E' && s[j][o] != 'E') str += 'E';
                        if (s[i][o] != 'T' && s[j][o] != 'T') str += 'T';
                    }
                }
                ans += t[str];
            }
            ++t[s[i]];
        }
        printf("%lld
    ", ans);
        return 0;
    }
    
  • 相关阅读:
    iOS设备后台播放音乐方法
    iOS 编译64位FFMPEG
    os8 location authorization 错误.
    IOS 使用新浪微博SDK
    IOS 解析歌词lrc
    IOS 通过button获取cell
    IOS 解析XML文档
    OC .(点)与->(箭头)用法区别
    黑苹果安装合集
    Hello,World
  • 原文地址:https://www.cnblogs.com/zsbzsb/p/13124947.html
Copyright © 2011-2022 走看看