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;
    }
  • 相关阅读:
    C# Nugut CsvHelper 使用
    C# 读写txt
    Js打开QQ聊天对话窗口
    Js 读写Cookies
    js 计算时间差
    C# 读取CSV文件
    使用 SqlBulkCopy 批量插入数据
    sql 添加列并设置默认值
    C# 获取Enum 描述和值集合
    SQL连接其它服务器操作
  • 原文地址:https://www.cnblogs.com/mgxj/p/5532773.html
Copyright © 2011-2022 走看看