现在的位置: 首页 > 综合 > 正文

HDU 1235 统计同成绩学生人数

2012年01月04日 ⁄ 综合 ⁄ 共 675字 ⁄ 字号 评论关闭

http://acm.hdu.edu.cn/showproblem.php?pid=1235

刚开始没有注意题目。效率不高。

数组直接开到N了。

View Code

#include <stdio.h>
#define MAX_ARRAY 1000
int main()
{

int scores[MAX_ARRAY];
int nTotal;
int focus;
int i;
while(scanf("%d",&nTotal) &&nTotal)
{

for(i = 0; i < nTotal; ++i)
{
scanf("%d",&scores[i]);
}
scanf("%d",&focus);
int count = 0;
for(i = 0 ; i < nTotal ; ++i)
if(scores[i] == focus)
++count;
printf("%d\n",count);
}
}

后来再想了下,发现可以用hash。

View Code

#include <stdio.h>
#include <memory.h>
#define MAX_ARRAY 101
int main()
{

int scores[MAX_ARRAY];
int nTotal;
int n;
int i;
while(scanf("%d",&nTotal) &&nTotal)
{
memset(scores,0,sizeof(scores));
for(i = 0; i < nTotal; ++i)
{
scanf("%d",&n);
++scores[n];
}
scanf("%d",&n);
printf("%d\n",scores[n]);
}
}

于是MAX_ARRAY 只开到101了。

两个都AC了,运行时间一样。

抱歉!评论已关闭.