zoukankan      html  css  js  c++  java
  • 2009年广东省大学生程序设计竞赛 E

     // 我写完H的时候说他读懂了这题,说了题意给我,(其实我没听懂,应该是刚过H,太激动,没心情听==、、、)
     // 然后他说暴力可以,我就叫他写,然后我就去看室友打lu ,
     // 后来他卡死了==。我重新写也是 wa==
     // 后来他发现用 string 数组过不了==。,我理解错题意--
     // 后面我们一起改,相差十几秒一起A==
     // 思路是把每位作者的作品都记录下来,然后看对这些作品被引用次数经行排序
     // 然后。。。。。。看代码 hehe 数组那里
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<vector>
    #include<iostream>
    #include<queue>
    #include<stack>
    #include<map>
    #include<cmath>
    #include<bitset>
    #define BUG printf("hehe ")
    #define INF 0x3f3f3f3f
    #define ll __int64
    #define lowbit(x) x&-x
    using namespace std;

    struct node
    {
        string name ;
        int ans ,next[110] ,cnt ;
    }qe[110] ;

    int num[110] ,map1[110] ,hehe[110] ;
    char a[110] ;
    map<string,int>ss ;

    bool cmp( node a , node b )
    {
        return (a.ans > b.ans) || (a.ans == b.ans && a.name < b.name) ;
    }
    bool cmp1( int a ,int b )
    {
        return a > b ;
    }
    int main()
    {
        int n , m ,i ,k ;
        int j , T ,tt ,rr ;
        string str ;
       // freopen("in.txt","r",stdin) ;
        while(scanf("%d",&n) != EOF )
        {
            if(n==0) break ;
            memset(num,0,sizeof(num)) ;
            ss.clear() ;
            tt = 0 ;
            for( i = 1 ; i <= n ;i++ )
            {
                cin >> str ;
                if(ss[str])
                {
                    m = ss[str] ;
                    qe[m].cnt++ ;
                    k = qe[m].cnt ;
                    qe[m].next[k] = i ;
                }
                else
                {
                    tt++ ;
                    ss[str] = tt ;
                    qe[tt].ans = 0 ;
                    qe[tt].name = str ;
                    qe[tt].cnt = 1 ;
                    qe[tt].next[1] = i ;
                }
            }
            for( i = 1 ; i <= n ;i++ )
            {
                cin >> a ;
                m = strlen(a) ;
                for( j = 0 ; j < m;j++ )if(a[j] == '1' && j+1 != i)
                    num[j+1]++ ;
            }
            for( i = 1 ; i <= tt ;i++ )
            {
                m = qe[i].cnt ;
                int ans = 0 ;
                rr = 1 ;
                for( j = 1 ; j <= m ;j++ ) {
                      int uu = qe[i].next[j] ;
                      hehe[rr++] = num[uu] ;
                }
                sort(hehe+1,hehe+rr,cmp1) ;
                hehe[rr] = 0 ;
                 //cout << hehe[1] << endl;
                for( j = 1 ; j < rr ;j++ ) if(hehe[j] < j ) break ;
                qe[i].ans = j-1 ;
            }
            sort(qe+1,qe+1+tt,cmp) ;
            for( i = 1 ; i<= tt ;i++ )
                cout << qe[i].name << " " << qe[i].ans << endl ;
            puts("") ;
        }
        return 0 ;
    }                                

  • 相关阅读:
    那天有个小孩跟我说LINQ(一) 转载
    关于cornerstone无法上传library文件的问题
    could not read data from '/Users/xxxx/myapp-Info.plist'
    symbol(s) not found for architecture x86_64
    MJ刷新控件MJRefreshFooterView上拉之后收不回来的解决办法
    [__NSCFNumber length]: unrecognized selector sent to instance 0x8b3c310
    An instance 0x172b8600 of class UITableView was deallocated while key value
    让UIScrollView、UITableView的滚动条一直显示
    访问iPhone通讯录的问题
    从模态视图push到另一个视图
  • 原文地址:https://www.cnblogs.com/20120125llcai/p/3661942.html
Copyright © 2011-2022 走看看