提出 #53678772


ソースコード 拡げる

#include <bits/stdc++.h>
#include <atcoder/modint>
using namespace std;
using mint=atcoder::modint998244353;

class opt_mint {
  public:
    operator bool() const{
        return v!=-1;
    }
    mint operator*() const{
        return mint::raw(v);
    }
    opt_mint& operator=(mint rhs){
        v=rhs.val();
        return *this;
    }
    opt_mint& operator+=(mint rhs){
        return *this=**this+rhs;
    }
  private:
    int v=-1;
};

mint solve(int a,int l,int r,int m,const vector<pair<int,int>>& lr,vector<opt_mint>& dp){
    if(a<0)
        return 1;
    const auto at=[&](int i,int j,int k)->opt_mint&{
        return dp[(i*(m+1)+j)*(m+1)+k];
    };
    auto& mem=at(a,l,r);
    if(mem)
        return *mem;
    auto [l0,r0]=lr[a];
    mem=0;
    if(l0==m){
        if(a==0)
            mem=r-l+1;
        else
            for(int i=l;i<=r;i++){
                mem+=solve(a-1,l,i,m,lr,dp);
                mem+=solve(a-1,i,r,m,lr,dp);
            }
    }else{
        for(int i=l;i<=l0;i++)
            mem+=solve(a-1,i,r,m,lr,dp);
        for(int i=r0;i<=r;i++)
            mem+=solve(a-1,l,i,m,lr,dp);
    }
    return *mem;
}

int main(){
    int n,m;
    cin>>n>>m;
    vector<int> a(m);
    vector<int> inv(n,-1);
    for(int i=0;i<m;i++){
        cin>>a[i];
        inv[a[i]]=i;
    }
    vector<pair<int,int>> lr;
    int l=m,r=-1;
    for(int i=0;i<n;i++){
        int idx=inv[i];
        if(idx!=-1){
            l=min(l,idx);
            r=max(r,idx+1);
        }else{
            lr.emplace_back(l,r);
        }
    }
    int k=lr.size();
    vector<opt_mint> dp(k*(m+1)*(m+1));
    cout<<solve(k-1,0,m,m,lr,dp).val()<<'\n';
}

提出情報

提出日時
問題 D - Delete Range Mex
ユーザ cai_lw
言語 C++ 20 (gcc 12.2)
得点 0
コード長 1726 Byte
結果 TLE
実行時間 2213 ms
メモリ 75980 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 700
結果
AC × 4
AC × 33
TLE × 27
セット名 テストケース
Sample 01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt, 01-sample-04.txt
All 01-sample-01.txt, 01-sample-02.txt, 01-sample-03.txt, 01-sample-04.txt, 02-01-N-0500.txt, 02-02-N-0500.txt, 02-03-N-0500.txt, 02-04-N-0500.txt, 02-05-N-0500.txt, 02-06-N-0485.txt, 02-07-N-0485.txt, 02-08-N-0485.txt, 02-09-N-0485.txt, 02-10-N-0485.txt, 03-01-N-0500.txt, 03-02-N-0483.txt, 04-01-N-0500.txt, 04-02-N-0496.txt, 05-01-N-0500.txt, 05-02-N-0494.txt, 06-01-N-0500.txt, 06-02-N-0489.txt, 07-01-N-0500.txt, 07-02-N-0483.txt, 08-01-N-0500.txt, 08-02-N-0500.txt, 08-03-N-0497.txt, 08-04-N-0497.txt, 09-01-N-0500.txt, 09-02-N-0500.txt, 09-03-N-0493.txt, 09-04-N-0493.txt, 10-01-N-0500.txt, 10-02-N-0493.txt, 11-01-N-0500.txt, 11-02-N-0487.txt, 12-01-N-0500.txt, 12-02-N-0490.txt, 13-01-N-0500.txt, 13-02-N-0500.txt, 13-03-N-0500.txt, 13-04-N-0488.txt, 13-05-N-0488.txt, 13-06-N-0488.txt, 14-01-N-0500.txt, 14-02-N-0500.txt, 14-03-N-0500.txt, 14-04-N-0500.txt, 14-05-N-0500.txt, 14-06-N-0480.txt, 14-07-N-0480.txt, 14-08-N-0480.txt, 14-09-N-0480.txt, 14-10-N-0480.txt, 98-samll-01.txt, 98-samll-02.txt, 98-samll-03.txt, 98-samll-04.txt, 98-samll-05.txt, 99-min-01.txt
ケース名 結果 実行時間 メモリ
01-sample-01.txt AC 1 ms 3528 KiB
01-sample-02.txt AC 1 ms 3444 KiB
01-sample-03.txt AC 1 ms 3500 KiB
01-sample-04.txt AC 1 ms 3584 KiB
02-01-N-0500.txt TLE 2193 ms 70176 KiB
02-02-N-0500.txt TLE 2212 ms 73776 KiB
02-03-N-0500.txt TLE 2212 ms 75644 KiB
02-04-N-0500.txt TLE 2099 ms 74448 KiB
02-05-N-0500.txt AC 1961 ms 72240 KiB
02-06-N-0485.txt TLE 2102 ms 61928 KiB
02-07-N-0485.txt TLE 2197 ms 65672 KiB
02-08-N-0485.txt TLE 2082 ms 69376 KiB
02-09-N-0485.txt AC 1930 ms 69216 KiB
02-10-N-0485.txt AC 1798 ms 66960 KiB
03-01-N-0500.txt AC 25 ms 59356 KiB
03-02-N-0483.txt AC 44 ms 59524 KiB
04-01-N-0500.txt AC 248 ms 23760 KiB
04-02-N-0496.txt AC 141 ms 20036 KiB
05-01-N-0500.txt AC 16 ms 27656 KiB
05-02-N-0494.txt AC 9 ms 24116 KiB
06-01-N-0500.txt AC 5 ms 5808 KiB
06-02-N-0489.txt AC 1 ms 3644 KiB
07-01-N-0500.txt AC 2 ms 4424 KiB
07-02-N-0483.txt AC 3 ms 4696 KiB
08-01-N-0500.txt AC 33 ms 65416 KiB
08-02-N-0500.txt AC 33 ms 59928 KiB
08-03-N-0497.txt AC 33 ms 64352 KiB
08-04-N-0497.txt AC 35 ms 66260 KiB
09-01-N-0500.txt AC 1 ms 3436 KiB
09-02-N-0500.txt AC 1 ms 3460 KiB
09-03-N-0493.txt AC 1 ms 3656 KiB
09-04-N-0493.txt AC 1 ms 3568 KiB
10-01-N-0500.txt TLE 2212 ms 75948 KiB
10-02-N-0493.txt TLE 2212 ms 73052 KiB
11-01-N-0500.txt TLE 2213 ms 59828 KiB
11-02-N-0487.txt TLE 2210 ms 53444 KiB
12-01-N-0500.txt AC 63 ms 7332 KiB
12-02-N-0490.txt AC 214 ms 12876 KiB
13-01-N-0500.txt TLE 2211 ms 68412 KiB
13-02-N-0500.txt TLE 2211 ms 73612 KiB
13-03-N-0500.txt TLE 2212 ms 75980 KiB
13-04-N-0488.txt TLE 2157 ms 61940 KiB
13-05-N-0488.txt TLE 2161 ms 68844 KiB
13-06-N-0488.txt TLE 2133 ms 70344 KiB
14-01-N-0500.txt TLE 2211 ms 67572 KiB
14-02-N-0500.txt TLE 2211 ms 70144 KiB
14-03-N-0500.txt TLE 2211 ms 72300 KiB
14-04-N-0500.txt TLE 2211 ms 73820 KiB
14-05-N-0500.txt TLE 2212 ms 74996 KiB
14-06-N-0480.txt TLE 2211 ms 59908 KiB
14-07-N-0480.txt TLE 2211 ms 62404 KiB
14-08-N-0480.txt TLE 2211 ms 64340 KiB
14-09-N-0480.txt TLE 2211 ms 65652 KiB
14-10-N-0480.txt TLE 2211 ms 66804 KiB
98-samll-01.txt AC 1 ms 3524 KiB
98-samll-02.txt AC 1 ms 3468 KiB
98-samll-03.txt AC 1 ms 3344 KiB
98-samll-04.txt AC 1 ms 3464 KiB
98-samll-05.txt AC 1 ms 3496 KiB
99-min-01.txt AC 1 ms 3496 KiB