zoukankan      html  css  js  c++  java
  • 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;
    }

  • 相关阅读:
    1270. 数列区间最大值(climits用法+线段树模板题)
    JDBC&DBCP总结
    1264. 动态求连续区间和(树状数组模板题)
    788. 逆序对的数量(归并排序的应用)
    归并排序(模板题)
    ZoomEye技巧
    工具或安全监测网站(不定时更新)
    bp截包
    CTF/web
    CTF/stega——图片隐写
  • 原文地址:https://www.cnblogs.com/2014acm/p/3903086.html
Copyright © 2011-2022 走看看