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