• poj 2945


    accept

    #include<iostream>
    #include<cstdlib>
    #include<string>
    #include<algorithm>
    using namespace std;
    
    char ss[20005][25];
    int num[20005];
    int n,m;
    
    int cmp(const void * a,const void * b)
    {
        int i,ans;
        char *s1,*s2;
        s1=(char *)a;
        s2=(char *)b;
        for(i=0;i<m;i++)
        {
            ans=s1[i]-s2[i];
            if(ans==0)
               continue;
            else
               return ans;
        }
        return ans;
    }
    
    int main()
    {
        int i,j,sum;
        while(scanf("%d%d",&n,&m)!=EOF)
        {
            if(n==0&&m==0)
               break;
            for(i=0;i<n;i++)
               scanf("%s",ss[i]);
            qsort(ss,n,sizeof(ss[0][0])*25,cmp);
            memset(num,0,sizeof(num));
            for(i=1,sum=0;i<=n;i++)
            {
                if(strcmp(ss[i],ss[i-1])==0)
                   sum++;
                else
                {
                    num[sum]++;
                    sum=0;
                }
            }
            for(i=0;i<n;i++)
               printf("%d
    ",num[i]);
        }
        return 0;
    }
    View Code

    #include<iostream>
    #include<cstdlib>
    #include<string>
    #include<algorithm>
    using namespace std;

    char ss[20005][25];
    int num[20005];
    int n,m;

    int cmp(const void * a,const void * b)
    {
    int i,ans;
    char *s1,*s2;
    s1=(char *)a;
    s2=(char *)b;
    for(i=0;i<m;i++)
    {
    ans=s1[i]-s2[i];
    if(ans==0)
    continue;
    else
    return ans;
    }
    return ans;
    }

    int main()
    {
    int i,j,sum;
    while(scanf("%d%d",&n,&m)!=EOF)
    {
    if(n==0&&m==0)
    break;
    for(i=0;i<n;i++)
    scanf("%s",ss[i]);
    qsort(ss,n,sizeof(ss[0][0])*25,cmp);
    memset(num,0,sizeof(num));
    for(i=1,sum=0;i<=n;i++)
    {
    if(strcmp(ss[i],ss[i-1])==0)
    sum++;
    else
    {
    num[sum]++;
    sum=0;
    }
    }
    for(i=0;i<n;i++)
    printf("%d ",num[i]);
    }
    return 0;
    }

     

    Time Limit Exceeded===pku 2945

    =Time Limit Exceeded *
    *********************

    #include <iostream>
    #include <map>
    #include <cstring>
    #include <string>
    using namespace std;
    map<string,int> my;
    int a[100005];
    int main(int argc, char *argv[])
    {
    int n,m,i,j; string s;
    while(cin>>n>>m)
    {
    for(i=0;i<n;i++)
    {
    cin>>s;
    if(my.count(s)==0) my[s]=1;
    else my[s]++;
    }
    memset(a,0,sizeof(a));
    map<string,int> ::iterator it;
    for(it=my.begin();it!=my.end();it++)
    {
    int x=(*it).second;
    a[x]++;
    }
    for(i=1;i<=n;i++)
    {
    cout<<a[i]<<endl;
    }
    my.clear();
    }
    return 0;
    }


    *********************************************************************************************************************

    ************************************************************************************************************************

    #include <algorithm>
    using namespace std;
    #define MAX 20000
    int A[MAX],ans,C[MAX];
    map <string,int> mp;
    int ID(string s){
    if(mp[s]>0)return mp[s]-1;
    mp[s]=ans++;
    return ans-2;
    }
    int main(){
    string s;
    int n,m;
    while(scanf("%d%d",&n,&m)==2 && n && m){
    ans=1;
    mp.clear();
    memset(A,0,sizeof(A));
    for(int i=0;i<n;i++){
    cin>>s;
    A[ID(s)]++;
    }
    memset(C,0,sizeof(C));
    for(int i=0;i<n;i++)
    C[A[i]]++;
    for(int i=1;i<=n;i++)
    printf("%d ",C[i]);
    }
    return 0;
    }

  • 相关阅读:
    20170719 Mysql 配置远端Mysql访问,增加表/存储过程
    20170720 Celery 异步任务处理到Sql Server 发生死锁
    20170718 关于Mysql 安装于虚拟机Ubuntu中,内网中Windows系统无法访问
    20170712 SQL Server 日志文件收索
    SQL Server 2016 发送邮件功能
    Sql server 函数--取值年月
    SSIS--(1)
    Hadoop 尝试
    百度之星复赛T6&&hd6149 ——Valley Numer II
    百度之星复赛T5&&hdu6148
  • 原文地址:https://www.cnblogs.com/2014acm/p/3903086.html
Copyright © 2020-2023  润新知