結果
| 問題 | No.3403 Count 1210 Sequence |
| コンテスト | |
| ユーザー |
👑 tails
|
| 提出日時 | 2025-12-10 07:10:38 |
| 言語 | C (gcc 13.3.0) |
| 結果 |
AC
|
| 実行時間 | 208 ms / 2,000 ms |
| コード長 | 1,497 bytes |
| 記録 | |
| コンパイル時間 | 1,150 ms |
| コンパイル使用メモリ | 31,872 KB |
| 実行使用メモリ | 23,684 KB |
| 最終ジャッジ日時 | 2025-12-10 07:10:49 |
| 合計ジャッジ時間 | 11,317 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 1 |
| other | AC * 31 |
コンパイルメッセージ
main.c: In function ‘main’:
main.c:78:9: warning: implicit declaration of function ‘write’ [-Wimplicit-function-declaration]
78 | write(1,wbuf,wp-wbuf);
| ^~~~~
main.c:79:9: warning: implicit declaration of function ‘_exit’ [-Wimplicit-function-declaration]
79 | _exit(0);
| ^~~~~
main.c:79:9: warning: incompatible implicit declaration of built-in function ‘_exit’ [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#define rd_init() char*rp=({char*mmap();mmap(0l,1l<<25,1,2,0,0ll);})
#define rd() ({int _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})
#define WTHI(v) {unsigned _z=v,_n=0;long _d=0;while(++_n,_d=_d<<8|0x30|_z%10,_z/=10);*(long*)wp=_d;wp+=_n;}
#define wt(v) if(v>=100000000){WTHI(v/10);*wp++=v%10+'0';}else{WTHI(v);}
#define rep(v,e) for(typeof(e)v=0;v<e;++v)
#define reps(v,s,e) for(typeof(e)v=s;v<e;++v)
#define repst(v,s,e,t) for(typeof(e)v=s;v<e;v+=t)
#define repeat(e) for(typeof(e)_=e;_--;)
#define aaa(x) ({ulong _r=x;_r-(_r<MD?0:MD);})
#define MD 998244353
typedef unsigned long ulong;
typedef struct{
unsigned t,i;
} SEdev;
SEdev edevs[226];
void mkedevs(){
repst(i,1,451,2){
edevs[i>>1].t=~0u/i;
unsigned x=i;
x*=2-i*x;
x*=2-i*x;
x*=2-i*x;
x*=2-i*x;
edevs[i>>1].i=x;
}
}
unsigned d[2026][2027];
void mkd(){
d[0][0]=1;
reps(i,1,2026){
d[i][0]=d[i-1][1];
reps(j,1,i+1){
d[i][j]=aaa(d[i-1][j-1]+d[i-1][j+1]);
}
}
}
char wbuf[1<<25];
int main(){
mkedevs();
mkd();
char*wp=wbuf;
rd_init();
repeat(rd()){
int n=rd();
int a=rd();
int m=(a&-a)*2-1;
ulong z=0;
reps(j,1,451){
if(j&m){
int je=__builtin_ctz(j);
int j2=j>>je;
SEdev edev=edevs[j2>>1];
unsigned k=a*edev.i;
if(k<=edev.t){
z+=d[n-1][j];
k>>=je;
if(k>450&&k<n){
z+=d[n-1][k];
}
}
}
}
unsigned v=z%MD;
wt(v);
*wp++='\n';
}
write(1,wbuf,wp-wbuf);
_exit(0);
}
tails