PHP Ladder
function ladder(array $a, array $b): array
{
    $size     = count($a);
    $r        = array_fill(0, $size, 0);
    $mod = (1 << max($b)) - 1;

    $fib = [0, 1];
    for ($i = 2, $limit = max($a); $i < $limit + 2; $i++) {
        $fib[$i] = ($fib[$i - 1] + $fib[$i - 2]) & $mod;
    }

    for ($i = 0; $i < $size; $i++) {
        $r[$i] = $fib[$a[$i] + 1] & ((1 << $b[$i]) - 1);
    }

    return $r;
}

This precomputes climb counts once and applies the modulo per query, which avoids recalculating the same paths over and over.