OpenJudge NOI 1.6 07:有趣的跳跃
生活随笔
收集整理的這篇文章主要介紹了
OpenJudge NOI 1.6 07:有趣的跳跃
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【題目鏈接】
OpenJudge NOI 1.6 07:有趣的跳躍
【題目考點】
1. 散列存儲
2. 求絕對值
求整數的絕對值: int abs(int a)
求浮點數的絕對值:double fabs(double a)
【解題思路】
n個元素相鄰元素差值的絕對值排序后為1~n-1,即1~n-1中每個數字都僅出現過1次。
設布爾數組vis,vis[i]表示差值i出現過。遍歷數組,求出相鄰元素的差值的絕對值,并在vis數組中做標記。
遍歷結束后,從下標1~n-1遍歷訪問vis數組
- 如果存在某個數字沒出現過,那么不存在有趣的跳躍。
- 如果每個數字都出現了,那么存在有趣的跳躍
【題解代碼】
解法1:
#include <bits/stdc++.h> using namespace std; int main() {int n, a[3005];;bool vis[3005] = {};//vis[i]:數字i是否出現過 初始化為falsecin >> n;for(int i = 1; i <= n; ++i)cin >> a[i];for(int i = 2; i <= n; ++i)vis[abs(a[i]-a[i-1])] = true;//abs(a[i]-a[i-1])這個數字已經出現過 for(int i = 1; i <= n-1; ++i){if(vis[i] == false){cout << "Not jolly";return 0;}}cout << "Jolly";return 0; }總結
以上是生活随笔為你收集整理的OpenJudge NOI 1.6 07:有趣的跳跃的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 退出出库复核是什么意思_电商仓储与传统仓
- 下一篇: OpenJudge NOI 1.7 17