Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

是不是你数组a,sum开的太小了,加上一个数组就多出了一片预留空间,内存连续使用,让你有足够内存使用

Posted by hudedi at 2008-09-10 11:20:58 on Problem 2739
In Reply To:POJ 我对你太不了解了 !!!!!!!!! Posted by:AlbertLiu at 2008-09-10 00:06:28
> 下面是我的代码,其中第六行是个根本没用的数组,但不加它就WA  加了就AC 害得我找错找了半天,当我把从2到10000的所有数全比较一遍后都没发现错误!!!!!
> 
> Run ID 4048280 AC
> Run ID 4048288 WA
> 
> #include <stdio.h>
> #include <iostream>
> using namespace std;
> #define N 700
> int a[N],sum[N]; 
> //int x[10000];      // 就是这个数组,根本就没用,但加上就AC 不加就WA
> int main()
> {
> 	int i,j,k,n,count;
> 	a[0]=2,a[1]=3;
> 	sum[0]=0,sum[1]=2,sum[2]=5;
> 	i=k=2;
> 	while(i<N)
> 	{
> 		++k;
> 		for(j=0;j<i;++j)
> 			if(k%a[j]==0)
> 				break;
> 		if(j==i)
> 		{	
> 			a[i]=k;
> 			sum[i+1]=sum[i]+k;
> 			++i;
> 		}
> 	}
> 	while(scanf("%d",&n)&&n)
> 	{
> 		i=count=0;
> 		while( n>a[i] && n%a[i] && i<50 )	++i;
> 		if(a[i]>=n || i==50)
> 			++count;
> 		k=0;
> 		while(sum[k]<n)	++k;
> 		k+=2;
> 		while(k>2)
> 		{	
> 			--k;
> 			i=0;
> 			while(sum[k+i]-sum[i]<n)	++i;
> 			if( sum[k+i]-sum[i]==n )
> 				count++;			
> 		}
> 		cout<<count<<endl;
> 	}
> 	return 0;
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator