讨论 / 为什么第9个测试数据过不了?
guoyifu2007 2011-09-29 06:00:00
点我顶贴 收藏 删除
//http://www.rqnoj.cn/Problem_598.html

#include <stdio.h>

int main()

{

int m,n;

//freopen ("trans.in","r",stdin);

//freopen ("trans.out","w",stdout);

while(scanf("%d%d",&m,&n)!=EOF)

{

int mem[1001]={},a[m];//内存,栈

int text,rom=0,cache;//n-容量

int k; //循环变量

for(k=0;k<m;k++) a[k]=0;

for(k=0;k<n;k++)

{

scanf("%d",&text);

if(mem[text]==0)

{

cache=rom%m;

mem[a[cache]]=0;

a[cache]=text;

//printf("a=%d\n",a[cache]);

mem[text]=1;

rom++;

}

}

printf("%d\n",rom);

}

}

第九个标准答案297个,我算出来299个,其他都可以

#1 earoke@2011-09-29 01:34:00
回复 删除
数组要初始化为-1,因为输入中有0,影响结果。
#2 guoyifu2007@2011-09-29 06:00:00
回复 删除
回复 沙发earoke 的帖子

我不是用数列做的,所以没有你所说的问题,而是第一次就覆盖的问题

查看更多回复
提交回复