• CodeForces 593A


    题意:给你弄n个字符串,字符串只包含小写字母,从中选取任意个字符串,拼成一封信,这封信中至多有两种字符,输出信的最大长度。

    题解:对a~z进行编号为1~26,开一个二维数组a,a[i][j]表示出现第i个字母和第j个字母的长度,对所有的字符串进行处理,然后就可以对数组a进行扫描:

    len=max(a[i][j]+a[j][i]+a[i][0]+[j][0]) ;(0<i<27,i<j<27)

    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    
    using namespace std;
    
    char s[1005];
    int  a[30][30];
    int  vis[30];
    
    bool cmp(int x,int y)
    {
        return x>y;
    }
    
    int main()
    {
        int n;
        scanf("%d",&n);
        while(n--)
        {
            scanf("%s",s);
            memset(vis,0,sizeof(vis));
            int len=strlen(s);
            int ans=0;
            int pos[3];
            memset(pos,-1,sizeof(pos));
            int i;
            for(i=0;i<len;i++)
            {
                if(!vis[s[i]-'a'])
                {
                    vis[s[i]-'a']=1;
                    pos[ans++]=s[i]-'a';
                }
                if(ans>2) break;
            }
            if(i==len) a[pos[0]+1][pos[1]+1]+=len;
        }
        int cnt=0;
        for(int i=1;i<27;i++)
            for(int j=i+1;j<27;j++)
            {
                int sum=0;
                sum+=a[i][j];
                sum+=a[j][i];
                sum+=a[i][0];
                sum+=a[j][0];
                cnt=max(sum,cnt);
            }
        cout<<cnt<<endl;
        return 0;
    }
  • 相关阅读:
    py基础之模块与包
    py装饰器,生成器,迭代器
    py函数式编程
    py基础之列表生成式
    算法基础之递归算法
    Py基础之函数
    py基础之无序列表
    py基础之数据类型及基本语法
    jsp报错问题汇总
    mysql问题汇总
  • 原文地址:https://www.cnblogs.com/mgxj/p/5532773.html
Copyright © 2020-2023  润新知