• Codeforces Round #451 (Div. 2) c


    就是模拟,先去除去重复的情况,再除去一个串为另一个串的后缀的情况,不过也学了一下set的用法和substr函数的用法,a.substr(pos,len)表示从字符串a第pos位开始取长度为len的子串。

    #include<bits/stdc++.h>
    using namespace std;
    map<string,int>mp1;
    map<int,string>mp2;
    set<string>set1[25];
    vector<string>v[25];
    bool judge(string a,string b)
    {
        int len=b.size()-a.size();
        if(len<=0) return false;
        if(b.substr(len,a.size())==a)
            return true;
        return false;
    
    }
    int main()
    {
        set<string>::iterator it1,it2;
        int n,cnt=0;
        string name,num,name1,name2;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>name;
            if(!mp1[name])
            {
                mp1[name]=++cnt;
                mp2[cnt]=name;
            }
            int k;
            cin>>k;
            for(int i=1;i<=k;i++)
            {
                cin>>num;
                set1[mp1[name]].insert(num);
            }
        }
        int flag;
        for(int i=1;i<=cnt;i++)
        {
    
            for(it1=set1[i].begin();it1!=set1[i].end();it1++)
            {
                flag=0;
                for(it2=set1[i].begin();it2!=set1[i].end();it2++)
                {
                    name1=*it1;
                    name2=*it2;
                    if(name1==name2) continue;
                    if(judge(name1,name2))
                    {
    
                        flag=1;
                        break;
                    }
    
                }
                if(!flag)
                {
                    v[i].push_back(name1);
                }
    
            }
        }
        cout<<cnt<<endl;
        for(int i=1;i<=cnt;i++)
        {
            cout<<mp2[i]<<" ";
            cout<<v[i].size()<<" ";
            for(int j=0;j<v[i].size();j++)
                cout<<v[i][j]<<" ";
            cout<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    单例模式 MonoState
    适配器模式+AutoFac
    复合模式 泛型检查
    复合模式
    OpenDaylight实验
    Open vSwitch
    Mininet入门实战
    Python基础语句学习
    修改用户密码登录期限
    springboot maven自定义jar包包名, 增加环境、时间版本号信息
  • 原文地址:https://www.cnblogs.com/eason9906/p/11755027.html
Copyright © 2020-2023  润新知