結果
| 問題 |
No.1549 [Cherry 2nd Tune] BANning Tuple
|
| コンテスト | |
| ユーザー |
googol_S0
|
| 提出日時 | 2021-06-11 21:55:41 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,399 bytes |
| コンパイル時間 | 5,593 ms |
| コンパイル使用メモリ | 276,128 KB |
| 最終ジャッジ日時 | 2025-01-22 05:47:23 |
|
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 7 WA * 13 |
ソースコード
#include<bits/stdc++.h>
#include<atcoder/all>
using namespace std;
using namespace atcoder;
typedef long long ll;
using mint=modint998244353;
int M=3001;
vector<mint> op(vector<mint> a,vector<mint> b){
vector<mint> c=convolution(a,b);
vector<mint> r(min(M+1,(int)(c.size())),0);
for(int i=0;i<(int)(r.size());i++){
r[i]=c[i];
}
return r;
}
vector<mint> e(){
vector<mint> r(1,1);
return r;
}
int main(){
int N,Q;
cin>>N>>Q;
vector<ll> K(Q);
vector<vector<int>> que(Q,vector<int>(4));
for(int i=0;i<Q;i++){
cin>>K[i];
K[i]--;
for(int j=0;j<4;j++){
cin>>que[i][j];
}
}
vector<ll> X=K;
sort(X.begin(),X.end());
decltype(X)::iterator result=unique(X.begin(),X.end());
X.erase(result,X.end());
int L=X.size();
unordered_map<ll,int> Y;
for(int i=0;i<L;i++){
Y[X[i]]=i;
}
vector<vector<mint>> Z(L,vector<mint>(M+1,1));
vector<vector<mint>> x(L,vector<mint>(M+1,1));
segtree<vector<mint>,op,e> seg(x);
vector<mint> p(M+1,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;
}
int I;
for(int i=0;i<Q;i++){
I=Y[K[i]];
for(int 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(int j=que[i][2];j<=que[i][3];j++){
ANS+=A[j];
}
cout<<ANS.val()<<"\n";
}
}
googol_S0