1 条题解

  • 0
    @ 2023-6-11 12:18:09

    C++ :

    #include <bits/stdc++.h>
    using namespace std;
    int a[210],b[201];
    
    int main(){
    	
        string s1 = "",s2 = "";
        int i,j,n,s,x = 0;
        cin>>n>>s;
        int c; 
        for(i = 1;i <= n;i++){
            s = (s * 345) % 19997;
            c = (97 + s % 26);
            //出现了就标记 
            a[c]++;
        }
         
        for(i = 1;i <= n;i++){
            s = (s * 345) % 19997;
            c = (97 + s % 26);
            b[c]++;
        }
        //cout<<s1<<" "<<s2<<endl;
        //统计2个字符串不相同的字符的个数,就是代价(交换不消耗代价)
        //统计不相同的可以反过来统计相同的
        for(i = 97;i < 97 + 26;i++){
            if(a[i] != 0 && b[i] != 0){
                x = x + min(a[i],b[i]);
            }
        } 
        cout<<n - x;
    
    
    }
    
    
    • 1

    信息

    ID
    2472
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者