zoukankan      html  css  js  c++  java
  • hdu5945 Fxx and game

    单调队列学习
    其实和单调栈类似
    都是因为有些元素是没有价值的可以舍去

    #include<bits/stdc++.h>
    using namespace std;
    #define sz(X) ((int)X.size())
    #define lson l,m,rt<<1
    #define rson m+1,r,rt<<1|1
    typedef long long ll;
    const int INF = 0x3f3f3f3f;
    const int N = 1e6+5;
    
    int X,k,t;
    int dp[N], pos[N], val[N];
    int main(){
        int _; scanf("%d",&_);
        while(_--) {
            scanf("%d %d %d",&X,&k,&t);
            if(t == 0) {
                int cc = 0;
                while(X) {
                    X /= k; cc ++;
                }
                printf("%d
    ",cc-1);
                continue;
            }
    
            int l = 1; int r = 2; val[1] = 0; pos[1] = 1; dp[1] = 0;
            for(int i = 2; i <= X; ++i) {
                while(l < r && pos[l] < i-t) l++;
    
                dp[i] = val[l]+1;
                if(i%k == 0) {
                    dp[i] = min(dp[i/k]+1, dp[i]);
                }
    
                while(l < r && val[r-1] >= dp[i]) r--;
    
                val[r] = dp[i]; pos[r] = i; r++;
            }
    
            printf("%d
    ",dp[X]);
        }
        return 0;
    }
    
  • 相关阅读:
    数据库
    数据库
    数据库
    数据库
    数据库
    数据库
    windows
    LeetCode : Word Pattern
    LeetCode : Perfect Number
    LeetCode : Minimum Depth of Binary Tree
  • 原文地址:https://www.cnblogs.com/Basasuya/p/8433729.html
Copyright © 2011-2022 走看看