挑战编程-基本数据结构

在图书馆闲逛,发现了刘汝佳的这本书,听着这个名字就把书拿回来了,还没有系统的学习过数据结构,就以这本书为启蒙读物吧!

以解决问题的形式来说明各种基本数据结构的使用,这样不仅了解了这些数据结构也能够运用这些数据结构解决问题。

本书的题目是在uva上的选择的。没办法刚注册了账号。

题目A:http://www.programming-challenges.com/pg.php?page=downloadproblem&probid=110201&format=html

题目大意:给出我们一行数列元素数为n,如果满足两个连续的相邻元素的绝对值取遍所有从1到n的所有整数,那么就是一个jolly jumper,否则不是。

关于本题,我竭尽所能仍然

486472 13/04/10 04:01 Solved 0.006 secs. CPP

仍然达不到大牛们的0s啊!不过本题我的处理方法很传统很初级,就是把每两个的绝对值求出并以绝对值为下标标记,然后依次遍历1-n,如果所有的数都被标记则为jolly jumper!

求大牛指导,求0s!

PS : my code

挑战编程-基本数据结构 My Code
 1 #include<iostream>

 2 #include<cstring>

 3 #include<cstdio>

 4 #include<cmath>

 5 using namespace std;

 6 int num[3005];

 7 int mark[3005];

 8 int main()

 9 {

10     int n;

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

12     {

13         int i;

14         memset(num,0,sizeof(num));

15         memset(mark,0,sizeof(mark));

16         scanf("%d",&num[0]);

17         for(i=1;i<n;i++)

18         {

19             scanf("%d",&num[i]);

20             mark[(int)abs(num[i]-num[i-1])]=1;

21         }

22     

23         for(i=1;i<n;i++)

24         {

25             if(mark[i]==0)

26                 break;

27         }

28         if(i>=n)

29             printf("Jolly\n");

30         else

31             printf("Not jolly\n");

32     }

33     return 0;

34 }

 

你可能感兴趣的:(数据结构)