POJ2575 Jolly Jumpers C语言

ContractedBlock.gif ExpandedBlockStart.gif View Code
 1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 #define MAXN (3000 + 100)
6
7 int flag[MAXN], num[MAXN];
8
9 void Fac(int n) {
10 memset(flag, 0, sizeof(flag));
11 memset(num, 0, sizeof(num));
12 int i, j, k;
13 __int64 f;
14 int res = 0;
15 for(i = 1; i <= n; ++i)
16 scanf("%d", &num[i]);
17 for(k = 2; k <= n; ++k) {
18 f = abs(num[k] - num[k - 1]); //不是 abs(abs(num[k]) - abs(num[k - 1]))题意理解错误啊!!!!
19 if(f < MAXN)
20 flag[f] = f;
21 }
22 for(j = 1; j < n; ++j)
23 if(!flag[j]) {
24 res = 1;
25 break;
26 }
27 if(res)
28 printf("Not jolly\n");
29 else
30 printf("Jolly\n");
31 }
32
33 int main() {
34 int n;
35 while(~scanf("%d", &n))
36 Fac(n);
37 return 0;
38 }

题目:http://poj.org/problem?id=2575

题目大意:n个数字,每对连续的两个数字,如果后数与前数差值的绝对值能覆盖1~(n-1)的每一个数,就输出Jolly,否则输出Not jolly

思路:水题啊,对每组相邻的数字做减法取绝对值,检查从1到n-1是否都存在就可以。先开始题意理解错误,以为是每个数的绝对值的差值,WA了无数次,读了好多遍题,终于发现问题了

提交情况:WA 7次, AC 1次

AC code:


 

转载于:https://www.cnblogs.com/cloehui/archive/2011/07/29/2120832.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值