| 题目名称 | 4251. 我能在摸鱼被发现的情况下躲避教练的视奸吗 |
|---|---|
| 输入输出 | shijian.in/out |
| 难度等级 | ★★★★ |
| 时间限制 | 2000 ms (2 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 10 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 查看题解 | 分享题解 |
| 通过:6, 提交:34, 通过率:17.65% | ||||
|
|
100 | 1.605 s | 24.61 MiB | C++ |
|
|
100 | 1.630 s | 25.73 MiB | C++ |
|
|
100 | 1.960 s | 25.17 MiB | C++ |
|
|
100 | 1.974 s | 25.17 MiB | C++ |
|
|
100 | 3.295 s | 38.02 MiB | C++ |
|
|
100 | 4.796 s | 139.93 MiB | C++ |
|
|
90 | 2.292 s | 28.67 MiB | C++ |
|
|
80 | 2.666 s | 27.54 MiB | C++ |
|
|
80 | 2.705 s | 28.70 MiB | C++ |
|
|
80 | 2.979 s | 22.47 MiB | C++ |
| 本题关联比赛 | |||
| 期末考试0 | |||
| 关于 我能在摸鱼被发现的情况下躲避教练的视奸吗 的近10条评论(全部评论) |
|---|
题目背景不根据真实经历改编。
你正在摸鱼看魔圆,这时 hxf 破门而入,于是你假装在写数据结构题。
给序列 $a_1,\dots,a_n$,$b_1,\dots,b_n$,$c_1,\dots,c_n$,
定义区间 $[l,r]$ 的价值为 $a_l,\dots,a_r$ 按位与,$b_l,\dots,b_r$ 按位或,$c_l,\dots,c_r$ 的最大公因数,这三者的乘积;
$m$ 次查询,每次查询给出区间 $[l,r]$,查询满足 $l\le l'\le r'\le r$ 的 $[l',r']$ 的价值之和。
第一行两个整数 $n,m$;
第二行 $n$ 个整数 $a_1,\dots,a_n$;
第三行 $n$ 个整数 $b_1,\dots,b_n$;
第四行 $n$ 个整数 $c_1,\dots,c_n$;
接下来 $m$ 行,每行两个整数 $l,r$ 表示一次查询。
对于 $m\le 10^5$ 的情况:共 $m$ 行,每行一个整数,表示对应的答案,答案对 $2^{32}$ 取模后输出。
对于 $m>10^5$ 的情况,输出一个答案,表示所有询问的答案(对 $2^{32}$ 取模后)的异或和,
5 3 3 3 1 1 1 2 1 3 2 2 4 5 3 4 4 1 2 2 5 4 5
48 63 24
特殊性质:保证 $a_i,c_i$ 均随机生成,$b_i=1$。
对于所有的数据,满足 $n\le 5\times 10^5,m\leq 5\times 10^6,1\le a_i,b_i,c_i\le n,1\le l\le r\le n$。
推荐使用如下的读入方式以优化常数:
const int MAXSIZE=(1<<25);
char buf[1<<25],*p1,*p2;
#define gc() (p1==p2&&(p2=(p1=buf)+fread(buf,1,MAXSIZE,stdin),p1==p2)?EOF:*p1++)
inline int read(){
int x=0,f=1;char ch=gc();
while(!isdigit(ch)){if(ch=='-')f=-1;ch=gc();}
while(isdigit(ch))x=(x<<3)+(x<<1)+ch-48,ch=gc();
return x*f;
}
调用函数即可返回一个整型数字。
大样例,第一个大样例具有特殊性质,其他大样例均无特殊性质。
luogu P9335。