結果
| 問題 | No.1891 Static Xor Range Composite Query |
| ユーザー |
👑 tails
|
| 提出日時 | 2022-04-04 20:31:39 |
| 言語 | C (gcc 15.2.0) |
| 結果 |
CE
(最新)
AC
(最初)
|
| 実行時間 | - |
| コード長 | 1,647 bytes |
| 記録 | |
| コンパイル時間 | 284 ms |
| コンパイル使用メモリ | 28,728 KB |
| 最終ジャッジ日時 | 2026-01-07 01:59:47 |
| 合計ジャッジ時間 | 3,292 ms |
|
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
ただし、clay言語の場合は開発者のデバッグのため、公開されます。
コンパイルメッセージ
main.c: 関数 ‘mkwd’ 内:
main.c:12:20: 警告: 複数文字からなる文字定数 [-Wmultichar]
12 | unsigned v='0000';
| ^~~~~~
main.c: 関数 ‘main’ 内:
main.c:52:17: エラー: too many arguments to function ‘mmap’; expected 0, have 6
52 | char*rp=mmap(0l,1l<<25,1,2,0,0ll);
| ^~~~ ~~
main.c:51:14: 備考: ここで宣言されています
51 | char*mmap();
| ^~~~
main.c:102:9: エラー: 関数 ‘write’ の暗黙的な宣言です [-Wimplicit-function-declaration]
102 | write(1,wp,wbuf+sizeof wbuf-wp);
| ^~~~~
main.c:103:9: エラー: 関数 ‘_exit’ の暗黙的な宣言です [-Wimplicit-function-declaration]
103 | _exit(0);
| ^~~~~
main.c:103:9: 警告: 組み込み関数 ‘_exit’ の互換性がない暗黙的な宣言です [-Wbuiltin-declaration-mismatch]
ソースコード
#pragma GCC optimize("Ofast")
#pragma GCC target("avx2")
#define rd_skip() while(*rp++>=48)
#define rd() ({long _v=0,_c;while(_c=*rp++-48,_c>=0)_v=_v*10+_c;_v;})
#define rep(v,e) for(long v=0;v<e;++v)
unsigned wd[10000];
char wdlen[10000];
void mkwd(){
unsigned v='0000';
long i=0;
rep(a,10){
rep(b,10){
rep(c,10){
rep(d,10){
wd[i++]=v;
v+=1<<24;
}
v+=(1<<16)-(10<<24);
}
v+=(1<<8)-(10<<16);
}
v+=(1<<0)-(10<<8);
}
rep(j,10000) wdlen[j]=4;
rep(j,1000) wdlen[j]=3;
rep(j,100) wdlen[j]=2;
rep(j,10) wdlen[j]=1;
}
typedef unsigned long ulong;
char wbuf[1<<25];
#define MD 998244353
struct AB {
unsigned a,b;
};
#define F(r,x,y) ({ulong a=(ulong)y.a*(ulong)x.a,b=(ulong)y.a*(ulong)x.b+(ulong)y.b;r.a=a%MD;r.b=b%MD;})
struct AB ab[19][262144];
unsigned z[200000];
int main(){
mkwd();
long n;
char*mmap();
char*rp=mmap(0l,1l<<25,1,2,0,0ll);
n=rd();
rd_skip();
rep(i,n){
ab[0][i].a=rd();
ab[0][i].b=rd();
}
rep(d,18){
ulong m=1<<d;
rep(i,262144){
F(ab[d+1][i],ab[d][i],ab[d][i^m]);
}
}
long q=0;
char*wp=wbuf+sizeof wbuf;
while(*rp){
long l=rd();
long r=rd();
ulong p=rd();
long x=rd();
struct AB u; u.a=1; u.b=0;
struct AB v; v.a=1; v.b=0;
long d=0;
while(l<r){
ulong m=1<<d;
if(l&m){
F(u,u,ab[d][l^p]);
l+=m;
}
if(r&m){
r-=m;
F(v,ab[d][r^p],v);
}
++d;
}
F(u,u,v);
z[q++]=(u.a*x+u.b)%MD;
}
while(q--){
*--wp='\n';
unsigned v=z[q];
while(v>=10000){
wp-=4;
*(unsigned*)wp=wd[v%10000];
v/=10000;
}
wp-=4;
*(unsigned*)wp=wd[v];
wp+=4-wdlen[v];
}
write(1,wp,wbuf+sizeof wbuf-wp);
_exit(0);
}
tails