結果

問題 No.1549 [Cherry 2nd Tune] BANning Tuple
ユーザー googol_S0
提出日時 2021-06-11 22:12:53
言語 C++17
(gcc 13.3.0 + boost 1.87.0)
結果
AC  
実行時間 375 ms / 4,000 ms
コード長 1,453 bytes
コンパイル時間 5,297 ms
コンパイル使用メモリ 278,784 KB
最終ジャッジ日時 2025-01-22 06:01:59
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 20
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using namespace atcoder;
typedef long long ll;
using mint=modint998244353;
ll M=4001;
vector<mint> op(vector<mint> a,vector<mint> b){
vector<mint> c=convolution(a,b);
vector<mint> r(min(M,(ll)(c.size())),0);
for(ll i=0;i<(ll)(r.size());i++){
r[i]=c[i];
}
return r;
}
vector<mint> e(){
vector<mint> r(1,1);
return r;
}
int main(){
ll N,Q;
cin>>N>>Q;
vector<ll> K(Q);
vector<vector<ll>> que(Q,vector<ll>(4));
for(ll i=0;i<Q;i++){
cin>>K[i];
K[i]--;
for(ll j=0;j<4;j++){
cin>>que[i][j];
}
}
vector<ll> X=K;
sort(X.begin(),X.end());
vector<ll> y(1,X[0]);
ll L=X.size();
for(ll i=1;i<L;i++){
if(X[i]!=X[i-1]){
y.push_back(X[i]);
}
}
X=y;
L=X.size();
unordered_map<ll,ll> Y;
for(ll i=0;i<L;i++){
Y[X[i]]=i;
}
vector<vector<mint>> Z(L,vector<mint>(M,1));
vector<vector<mint>> x(L,vector<mint>(M,1));
segtree<vector<mint>,op,e> seg(x);
vector<mint> p(M,1);
vector<mint> q(1,1);
ll R=N-L;
while(R){
if(R&1){
q=op(p,q);
}
p=op(p,p);
R>>=1;
}
ll I;
for(ll i=0;i<Q;i++){
I=Y[K[i]];
for(ll j=que[i][0];j<=que[i][1];j++){
Z[I][j]=0;
}
seg.set(I,Z[I]);
vector<mint> A=op(seg.all_prod(),q);
mint ANS=0;
for(ll j=que[i][2];j<=que[i][3];j++){
if((ll)(A.size())>j){
ANS+=A[j];
}
}
cout<<ANS.val()<<"\n";
}
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0