competitive-programming-library

This documentation is automatically generated by online-judge-tools/verification-helper

View the Project on GitHub yu-0811/competitive-programming-library

:warning: algorithm_library/cpp/doubing.cpp

Code

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ll long long
const int MOD = 998244353;
const int INF = 1000000000;
const ll INFll = 9223372036854775807;

vector<vector<int>> doubling(vector<vector<int>> &dp, int LEN, ll POW){
    for (int i=1; i<POW; i++){
        for (int j=0; j<LEN; j++){
            dp[i][j] = dp[i-1][dp[i-1][j]];
        }
    }
    return dp;
}

int query(vector<vector<int>> &dp, int j, ll k){
    int tmp = j; int i=0;
    while (k>0){
        if (k&1){
            tmp = dp[i][tmp];
        }
        k >>= 1;
        i += 1;
    }
    return tmp;
}
#line 1 "algorithm_library/cpp/doubing.cpp"
#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)
#define ll long long
const int MOD = 998244353;
const int INF = 1000000000;
const ll INFll = 9223372036854775807;

vector<vector<int>> doubling(vector<vector<int>> &dp, int LEN, ll POW){
    for (int i=1; i<POW; i++){
        for (int j=0; j<LEN; j++){
            dp[i][j] = dp[i-1][dp[i-1][j]];
        }
    }
    return dp;
}

int query(vector<vector<int>> &dp, int j, ll k){
    int tmp = j; int i=0;
    while (k>0){
        if (k&1){
            tmp = dp[i][tmp];
        }
        k >>= 1;
        i += 1;
    }
    return tmp;
}
Back to top page