4 条题解

  • 0
    @ 2024-1-7 13:23:35

    用二进制的位来表示字母

    #include <iostream>
    #include <vector>
    #include <string>
    #include <algorithm>
    using namespace std;
    
    int main() {
    // 注意:在C++中,主函数必须返回一个int类型
    int n;
    cin >> n;
    vector<int> a(n), b(n);
    for (int i = 0; i < n; i++) {
    string word;
    cin >> word;
    b[i] = word.length();
    for (char c : word) {
    a[i] |= 1 << (c - 'a');
    }
    }
    int num = 0;
    for (int i = 0; i < a.size(); i++) {
    for (int j = i; j < a.size(); j++) {
    if ((a[i] & a[j]) == 0) {
    num = max(num, b[i] * b[j]);
    }
    }
    }
    cout << num << endl;
    return 0;
    }
    
    
    

    信息

    ID
    590
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    (无)
    递交数
    116
    已通过
    34
    上传者