zoukankan      html  css  js  c++  java
  • 【思维】单调栈——cf1366E

    #include<bits/stdc++.h>
    using namespace std;
    #define N 300005
    #define mod 998244353
    #define ll long long
    
    int n,a[N],m,b[N],c[N],d[N];
    
    int main(){
        cin>>n>>m;
        for(int i=1;i<=n;i++)scanf("%d",&a[i]);
        for(int i=1;i<=m;i++)scanf("%d",&b[i]);
        
        stack<int>stk;
        for(int i=1;i<=n;i++){
            if(stk.size()==0){stk.push(i);continue;}
            while(stk.size() && a[stk.top()]>=a[i])
                stk.pop();
            stk.push(i);
        }
        
        int k=stk.size();
        for(int i=k;i>=1;i--){
            c[i]=stk.top();stk.pop();
        }
        
        if(a[c[1]]!=b[1]){puts("0");return 0;}
        
        int ans=1,p=1;
        for(int i=2;i<=m;i++){
            while(a[c[p]]<b[i] && p<=k)p++;
            if(a[c[p]]>b[i] || p==k+1){puts("0");return 0;}
            int pos=c[p];
            while(a[pos]>=b[i] && pos>0)pos--;
            ans=1ll*ans*(c[p]-pos)%mod;
        }
                
        cout<<ans<<'
    ';
    } 
  • 相关阅读:
    JDBC JAVA数据库插入语句
    uri与url
    struts标签库
    jdbc使用
    mysql安装配置
    Json Web Token
    实现一个简单vue
    vue v2.5.0源码-双向数据绑定
    vue v2.5.0源码-初始化流程
    webpack
  • 原文地址:https://www.cnblogs.com/zsben991126/p/13098683.html
Copyright © 2011-2022 走看看