洛谷 P1152 歡樂的跳

2021-10-07 14:16:40 字數 1137 閱讀 7175

乙個nn個元素的整數陣列,如果陣列兩個連續元素之間差的絕對值包括了[1,n-1][1,n−1]之間的所有整數,則稱之符合「歡樂的跳」,如陣列1 4 2 31423符合「歡樂的跳」,因為差的絕對值分別為:3,2,13,2,1。

給定乙個陣列,你的任務是判斷該陣列是否符合「歡樂的跳」。

每組測試資料第一行以乙個整數n(1 \le n \le 1000)n(1≤n≤1000)開始,接下來nn個空格隔開的在[-10^8−108,10^8108]之間的整數。

對於每組測試資料,輸出一行若該陣列符合「歡樂的跳」則輸出"jolly",否則輸出"not jolly"。

輸入 #1複製

4 1 4 2 3
輸出 #1複製

jolly
輸入 #2複製

5 1 4 2 -1 6
輸出 #2複製

not jolly
1≤n≤1000

分析:也不難,先把相鄰元素差的絕對值儲存起來,放到陣列b裡面,然後遍歷b,這裡採用桶排序的思想,設立乙個陣列c,若b[i]==5,則c[b[i]]++;

即c[5]++,這樣遍歷一遍,c中小於1000的數中,若有c[i]==0,則說明這個數沒有被訪問過,就說明不是jolly

這裡注意乙個細節,在執行c[b[i]]++之前,要判斷b[i]是不是1000以內,不然只開了1000大小的陣列c,無法執行類似於b[3000]這樣大小的資料,會越界,跑的時候會re,我就是遇到了這個問題,加上if(b[i]<1004)之後,就ac了,附上**:

#include#includeusing namespace std;

int n;

int a[1005];

int b[1005];

int c[1005];

int main()

int flag=1;

for(int i=1;iif(c[i]==0)

if(flag)

cout<<"jolly";

else

cout<<"not jolly";

return 0;

}

洛谷P1152 歡樂的跳

題目鏈結 題目描述 乙個n個元素的整數陣列,如果陣列兩個連續元素之間差的絕對值包括了 1,n 1 之間的所有整數,則稱之符合 歡樂的跳 如陣列1423符合 歡樂的跳 因為差的絕對值分別為 3,2,1。給定乙個陣列,你的任務是判斷該陣列是否符合 歡樂的跳 輸入格式 每組測試資料第一行以乙個整數n 1 ...

洛谷 P2678 跳石頭

原題 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 nn 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移走一些岩石,使得選手們在比賽過...

洛谷P2678 跳石頭

一年一度的 跳石頭 比賽又要開始了 這項比賽將在一條筆直的河道中進行,河道中分布著一些巨大岩石。組委會已經選擇好了兩塊岩石作為比賽起點和終點。在起點和終點之間,有 n 塊岩石 不含起點和終點的岩石 在比賽過程中,選手們將從起點出發,每一步跳向相鄰的岩石,直至到達終點。為了提高比賽難度,組委會計畫移走...