提出 #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 | ||||||
| 結果 |
|
|
| セット名 | テストケース |
|---|---|
| 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 |