zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    排序算法---堆排序

    排序算法---希尔排序
    简单排序算法
    Jave 垃圾回收查看工具--jstat
    Linux 查看进程IO状态
    vittualenv 和mkvirtualenv
    服务器被当作了肉机去挖矿的解决办法
    pycharm的函数注释 和 父子组件传递
    git初始化操作
  • 原文地址:https://www.cnblogs.com/mgxj/p/5532773.html
Copyright © 2011-2022 走看看