iT邦幫忙

0

[解題紀錄]:C. Manhattan Subarrays

  • 分享至 

  • xImage
  •  

題目:C. Manhattan Subarrays

心得:

這題我自己卡在題目的定義無法掌握(題目中bad的定義),突破點在於看到了題目中的範例測試資料,假如沒有題目的範例測試資料了話,就需要想像更多的可能情況,才可以好好理解定義的意義為何

程式碼:

// https://codeforces.com/contest/1550/problem/C
#include <iostream>
using namespace std;

bool is_good(long long a, long long b, long long c)
{
    return (b - a) * (b - c) > 0;
}

int main()
{
    int t;
    cin >> t;
    while (t--) {
        int n;
        cin >> n;
        int a[n];
        int count = 0;
        for (int i = 0; i < n; i++)
            cin >> a[i];
        count += 2 * n - 1;
        for (int i = 0; i < n-2; i++)
            if (is_good(a[i], a[i+1], a[i+2])) 
                count++;

        for (int i = 0; i < n-3; i++)
            if (is_good(a[i], a[i+1], a[i+2]) && is_good(a[i+1], a[i+2], a[i+3]) &&
                        is_good(a[i], a[i+1], a[i+3]) && is_good(a[i], a[i+2], a[i+3]))
                count++;

        cout << count << endl;
    }

    return 0;
}

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言