首页 > 其他分享 >洛谷题单指南-排序-P1152 欢乐的跳

洛谷题单指南-排序-P1152 欢乐的跳

时间:2024-01-30 11:24:56浏览次数:34  
标签:int 洛谷题 long 108 绝对值 数组 排序 P1152

原题链接:https://www.luogu.com.cn/problem/P1152

题意解读:要判断相邻数差的绝对值是否覆盖1~n-1,只需遍历相邻两数之差,借助数组标记差的绝对值是否存在,然后遍历数组即可。

解题思路:

此题有两个注意点:

1、数值要用long long

2、计算差值绝对值后,标记桶数组时,有可能导致越界,因为每个元素范围 [−108,108]

100分代码:

#include <bits/stdc++.h>
using namespace std;

const int N = 1005;

long long a[N];
int h[N];
int n;

int main()
{
    cin >> n;
    for(int i = 1; i <= n; i++) cin >> a[i];
    
    for(int i = 2; i <= n; i++) 
    {
        int v = abs(a[i] - a[i - 1]); //注意两数之差有可能超过数组最大长度而导致越界
        if(v < n) h[v] = 1; //只记录两数差的绝对值在1~n-1的即可
    }

    bool flag = true;
    for(int i = 1; i <= n - 1; i++)
    {
        if(h[i] == 0) 
        {
            flag = false;
            break;
        }
    }

    if(flag) cout << "Jolly";
    else cout << "Not jolly";

    return 0;
}

 

标签:int,洛谷题,long,108,绝对值,数组,排序,P1152
From: https://www.cnblogs.com/jcwy/p/17996722

相关文章

  • 洛谷题单指南-排序-P2676 [USACO07DEC] Bookshelf B
    原题链接:https://www.luogu.com.cn/problem/P2676题意解读:要使能够到书架顶的牛数量最少,优先选高的牛即可,直到总身高超过书架高度,简单的排序+贪心,下面给出代码。100分代码:#include<bits/stdc++.h>usingnamespacestd;constintN=20005;inth[N];intn,b;intmain......
  • 洛谷题单指南-排序-P1781 宇宙总统
    原题链接:https://www.luogu.com.cn/problem/P1781题意解读:题目思路非常简单,在n个投票数中选最大的,并记录其编号即可,由于投票数很大,无法直接用整形,需要通过string来进行数字比较。解题思路:本题的关键在于如何比较string数字的大小?在高精度减法时,需要判断两个数的大小,用大数减小......
  • C++实现直接插入排序、冒泡排序、快速排序、选择排序(含调试程序)
    #include<iostream>#include<fstream>#include<string>#include<vector>#include<algorithm>usingnamespace::std;classSolution{public: //直接插入排序 voidinsertsort(vector<int>&num){ for(inti=1;i<num......
  • 洛谷题解-[ABC286E] Souvenir
    https://www.luogu.com.cn/problem/AT_abc286_e题目描述NNN個の都市があり、いくつかの相異なる都市の間は一方通行の直行便によって移動することができます。どの直行便が存在するかはNNN個の長さNNNの文字列S1,S2,…,SNS_1,S_2,\ldots,S_NS1​,S2​,…,SN​......
  • 冒泡排序(2)
    #include<iostream>usingnamespacestd;structka{ stringname; intage; stringxin;};intmain(){ kaa[5]; kat; for(inti=0;i<5;i++){ cin>>a[i].name>>a[i].age>>a[i].xin; } for(inti=0;i<5;i++){for(int......
  • 148. 排序链表(中)
    目录题目法一、冒泡排序法二、归并排序题目给你链表的头结点head,请将其按升序排列并返回排序后的链表。法一、冒泡排序冒泡排序:两个for循环,i从头开始,j在i后一位开始,比较如果j小于i就交换,否则i往后移classSolution:defsortList(self,head:Optional[ListNo......
  • 洛谷题解-[ABC325E] Our clients, please wait a moment
    https://www.luogu.com.cn/problem/AT_abc325_e题目描述ある国には都市がNNN個あります。あなたは、都市111にある営業所から000個以上の都市を経由して都市NNNにある訪問先へ移動しようとしています。移動手段は社用車と電車の222種類があります。都市......
  • 洛谷题单指南-排序-P1093 [NOIP2007 普及组] 奖学金
    原题链接:https://www.luogu.com.cn/problem/P1093题意解读:本题考察排序,根据题意,先按总分从大到小排,再按语文从大到小排,以上都相同则按学号从小到大排。100分代码:#include<bits/stdc++.h>usingnamespacestd;constintN=305;structstudent{intid;intyuw......
  • 洛谷题单指南-排序-P1059 [NOIP2006 普及组] 明明的随机数
    原题链接:https://www.luogu.com.cn/problem/P1059题意解读:此题主要做两件事:排序+去重,用计数排序即可解决,直接给出代码。100分代码:#include<bits/stdc++.h>usingnamespacestd;constintN=1005;inta[N];intn;intmain(){cin>>n;intx;intcnt......
  • java冒泡排序的三种实现方法
    第一种通过简单的比较相邻的元素,如果他们的顺序是错误的,则交换它们的位置。重复这个步骤,直到没有更多要交换的元素为止。j变量代表未排序数组范围的右边界,j以后的已经排序publicstaticvoidbubble(int[]nums,intj){if(j==0){return;}......