| 题目名称 | 4438. 「LibreOJ NOI Round #2」单枪匹马 |
|---|---|
| 输入输出 | single_noi.in/out |
| 难度等级 | ★★★☆ |
| 时间限制 | 2000 ms (2 s) |
| 内存限制 | 512 MiB |
| 测试数据 | 20 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:1, 提交:1, 通过率:100% | ||||
|
|
100 | 10.593 s | 29.58 MiB | C++ |
| 关于 「LibreOJ NOI Round #2」单枪匹马 的近10条评论(全部评论) |
|---|
single_noi.in
输出文件:single_noi.out
简单对比由于评测机差异,本题目于 COGS 上增加 1000ms 时限
It's funny, the day you lose someone isn't the worst.
At least you've got something to do.
It's the days they stay gone.
小 X 是一位 X 国的附魔师。自从那场战争爆发到现在,小 X 已经整整一年没有回到 X 国了。战事不断恶化,小 X 与 X 国的故人的联系也如风中残烛一般时断时续。但小 X 却连缅怀过去的时间都没有,肩负着责任的他只能日复一日地战斗着……
今天,小 X 需要进行一场炼金实验。 小 X 面前有 $N$ 种元素,它们的标号分别为 $1,2,\dots,N$,每一种元素 $i$ 都有一个对应的正整数 $a_i$,表示它的魔法强度。每个时刻,小 X 会执行如下操作中的一种:
其中 $$f(x)=x$$ $$f(a_0,a_1,a_2,\dots,a_n)=a_0+\frac{1}{f(a_1,a_2,\dots,a_n)}\quad (n\geq 1)$$
显然,对于操作 $2$,小 X 所操作的 $f(a_l,a_{l+1},\dots,a_r)$ 一定可以唯一地写为最简分数 $\frac{x}{y}$ 的形式,你需要告诉小 X 的是 $x$ 和 $y$ 分别对 $998244353$ 取模的值。
第一行三个整数 $N, M, Type$,分别表示初始时元素的种类数,操作的个数,以及强制在线参数。
接下来一行 $N$ 个正整数 $a_i$,描述初始时各种元素的魔法强度。
接下来 $M$ 行,每行第一个整数 $opt$,表示当前操作类型。
特别地,对于 $Type=1$ 的数据,令上一次 $opt=2$ 的操作的答案为 $Ansx, Ansy$,所有除 $opt$ 以外的输入数据均需要异或上 $Ansx \oplus Ansy$,其中 $\oplus$ 表示二进制下按位异或。规定:在第一次 $opt=2$ 的操作之前,$Ansx=0, Ansy=0$。
对于所有 $opt=2$ 的操作,输出一行两个整数 $Ansx, Ansy$,分别表示 $f(a_l,a_{l+1},\dots,a_r)$ 最简分数的分子和分母对 $998244353$ 取模的结果。
2 3 0 3 4 2 1 2 1 7 2 2 3
13 4 29 7
3 2 0 1 1 998244352 2 2 3 2 1 3
0 998244352 998244352 0
样例 1:
第一个 $opt=2$ 的操作:
$$f(3,4)=3+\frac{1}{4}=\frac{13}{4}$$
第二个 $opt=2$ 的操作:
$$f(4,7)=4+\frac{1}{7}=\frac{29}{7}$$
样例 2:
第一个 $opt=2$ 的操作:
$$f(1,998244352)=1+\frac{1}{998244352}=\frac{998244353}{998244352}$$
第二个 $opt=2$ 的操作:
$$f(1,1,998244352)=1+\frac{998244352}{998244353}=\frac{1996488705}{998244353}$$
对 $998244353$ 取模后得到对应输出。
对于所有测试数据,保证 $1 \leq N,M \leq 5\times10^5$,$Type\in\{0,1\}$,$opt\in\{1,2\}$,$1\leq a_i\leq 998244352$。 对于 $opt=1$ 的操作,保证解密后满足 $1\leq x\leq 998244352$。 对于 $opt=2$ 的操作,保证解密后满足 $1\leq l\leq r\leq Max$,其中 $Max$ 表示当前标号最大的元素的标号。
LibreOJ NOI Round #2