心如止水
Je n'ai pas le temps
posts - 400,comments - 130,trackbacks - 0
我认为刘汝佳在《算法竞赛入门经典》一书中的题目分类有错~这题怎么被归为暴力求解了呢?
题目大意:给出n个正整数,每个数都小于等于10000;有m次提问,问题是x在这个序列中第几大,如果x不在序列中,输出不在序列中。
以下是我的代码:
#include<stdio.h>
#include
<string.h>
int main()
{
    
/*
    freopen("data.in","r",stdin);
    freopen("data.out","w",stdout);
    //
*/
    
const long maxn=10008;
    
long n,m,test=0,be[maxn],pos[maxn];
    
while(scanf("%ld%ld",&n,&m)==2)
    {
       
if(n==0||m==0break;
       test
++;
       printf(
"CASE# %ld:\n",test);
       memset(be,
0,sizeof(be));
       memset(pos,
0,sizeof(pos));
       
for(long i=1;i<=n;i++)
       {
          
long t;
          scanf(
"%ld",&t);
          be[t]
++;
       }
       
//  Read In
       long tmp=0;
       
for(long i=0;i<maxn;i++)
         
if(be[i])
         {
            pos[i]
=tmp+1;
            tmp
+=be[i];
         }
       
//  Init
       for(long i=1;i<=m;i++)
       {
          
long t;
          scanf(
"%ld",&t);
          
if(pos[t])
            printf(
"%ld found at %ld\n",t,pos[t]);
          
else printf("%ld not found\n",t);
       }
    }
return 0;
}


posted on 2010-01-09 19:22 lee1r 阅读(841) 评论(0)  编辑 收藏 引用 所属分类: 题目分类:基础/模拟

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理