c_cpp 跳马里奥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c_cpp 跳马里奥相关的知识,希望对你有一定的参考价值。

#include <algorithm>
#include <iostream>
#include <numeric>
#include <tuple>
#include <vector>
using namespace std;

tuple<int, int> count_jumps(const vector<int> &walls)
{
    vector<int> jumps(walls.size());
    adjacent_difference(walls.begin(), walls.end(), jumps.begin());

    return {
        count_if(jumps.begin() + 1, jumps.end(), [](int x) { return x > 0; }),
        count_if(jumps.begin() + 1, jumps.end(), [](int x) { return x < 0; })
    };
}

void test_case(int case_num)
{
    int n;
    cin >> n;
    vector<int> walls(n);
    for (auto &w : walls) cin >> w;

    int high_jumps, low_jumps;
    tie(high_jumps, low_jumps) = count_jumps(walls);

    cout << "Case " << case_num << ": " << high_jumps << " " << low_jumps << endl;
}

int main()
{
    int t;
    cin >> t;
    for (int i = 1; i <= t; i++) test_case(i);
    return 0;
}

以上是关于c_cpp 跳马里奥的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp 第1周马里奥1

1216 跳马问题

回溯8--跳马问题

cogs——49. 跳马问题

code vs 1216 跳马问题

国际象棋之跳马程序