zoukankan      html  css  js  c++  java
  • Codeforces Round #566 (Div. 2)C(字符串,SET)

    #include<bits/stdc++.h>
    using namespace std;
    string s[100007];
    set<int>st[100007][7];
    int t[207];
    int a[100007],b[100007][2],c[100007],d[100007][2];
    int main(){
    t['a']=1;
    t['e']=2;
    t['i']=3;
    t['o']=4;
    t['u']=5;
    int n;
    cin>>n;
    for(int i=1;i<=n;++i){
    cin>>s[i];
    int cnt=0;
    char last;
    for(int j=0;j<s[i].length();++j){
    if(s[i][j]=='a'||s[i][j]=='e'||s[i][j]=='i'||s[i][j]=='o'||s[i][j]=='u'){
    cnt++;
    last=s[i][j];
    }
    }
    if(cnt){
    st[cnt][t[last]].insert(i);
    }
    }
    int cnt1=0,cnt2=0;
    int num1=0,num2=0;
    for(int i=1;i<=100000;++i){
    num1=0;
    for(int j=1;j<=5;++j){
    num2=0;
    for(auto it:st[i][j]){
    a[++num2]=it;//将有i个元音字母并且结尾元音字母编号为j的字符串序号放进a数组中
    }
    for(int k=1;k<num2;k+=2){//将a数组中的字符串成双取出到b数组,他们都拥有相同的元音字母个数和最后一个字母
    b[++cnt1][0]=a[k];
    b[cnt1][1]=a[k+1];
    }
    if(num2&1)//a数组有一个余下的字符串序号
    c[++num1]=a[num2];//c数组放成单的字符串序号,他们都拥有相同的元音字母个数i,却没有相同的结尾元音字母
    }
    for(int j=1;j<num1;j+=2){//将c数组中的字符串成双取出到d数组,他们都拥有相同的元音字母个数,结尾元音字母不同使得它们只能放在每行的第一个
    d[++cnt2][0]=c[j];
    d[cnt2][1]=c[j+1];
    }
    }
    if(cnt1<=cnt2){//拥有相同元音字母个数的对数少于不同的
    cout<<cnt1<<" ";
    for(int i=1;i<=cnt1;++i){
    cout<<s[d[i][0]]<<" "<<s[b[i][0]]<<" ";
    cout<<s[d[i][1]]<<" "<<s[b[i][1]]<<" ";
    }
    }
    else{
    int ans=cnt2+(cnt1-cnt2)/2;//拥有相同元音字母个数的对数较多,优先让它们和不同的进行搭配,再两两自成对
    cout<<ans<<" ";
    for(int i=1;i<=cnt2;++i){
    cout<<s[d[i][0]]<<" "<<s[b[i][0]]<<" ";
    cout<<s[d[i][1]]<<" "<<s[b[i][1]]<<" ";
    }
    for(int i=cnt2+1;i<cnt1;i+=2){
    cout<<s[b[i][0]]<<" "<<s[b[i+1][0]]<<" ";
    cout<<s[b[i][1]]<<" "<<s[b[i+1][1]]<<" ";
    }
    }
    return 0;
    }

    保持热爱 不懈努力 不试试看怎么知道会失败呢(划掉) 世上无难事 只要肯放弃(划掉)
  • 相关阅读:
    A Survey of Deep Clustering Algorithms
    随机傅里叶特征(Random Fourier Features)
    MATLAB实例:二元高斯分布图
    MATLAB实例:PCA(主成成分分析)详解
    MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)
    Extreme Learning Machine
    在MATLAB R2018b中配置VLFeat
    Deep Clustering Algorithms
    机器学习优化算法
    sql注入总结
  • 原文地址:https://www.cnblogs.com/ldudxy/p/11184598.html
Copyright © 2011-2022 走看看