定义函数 $$$f(x)$$$,表示序列 $$$x$$$ 中不同元素的种类数。例如:
进一步地,我们定义函数 $$$g(y)$$$,表示序列 $$$y$$$ 所有非空子序列 $$$x$$$ 对应的 $$$f(x)$$$ 之和,即: $$$$$$ g(y) = \sum_{x \subseteq y, x \neq \emptyset} f(x) $$$$$$ 换句话说,$$$g(y)$$$ 计算了 $$$y$$$ 的所有非空子序列中不同元素种类数的总和。
一个序列的子序列,指的是从原序列中删除零个或多个元素后,其余元素保持原有相对顺序不变得到的序列。
现在,给定一个正整数 $$$x$$$,你的任务是构造一个序列 $$$a$$$,使得 $$$g(a) = x$$$,或报告这样的序列不存在。
输入包含一个正整数 $$$x$$$($$$1 \le x \le 10^{18}$$$)。
如果不存在满足条件的序列,输出一行 No。
否则,第一行输出 Yes,第二行输出一个整数 $$$n$$$ 表示序列长度,第三行输出 $$$n$$$ 个正整数 $$$a_1, a_2, \ldots, a_n$$$ 表示这个序列。
要求 $$$1 \le n \le 10^5$$$,$$$1 \le a_i \le n$$$。可以证明如果有解,必然存在满足限制的解。
1
Yes 1 1
4
Yes 2 2 1
10
Yes 3 3 1 3
It's a beautiful day outside...
Birds are singing, flowers are blooming...
On days like these kids like you...
SHOULD BE BURNING IN HELL.
你是一个狂妄之人,你来到了最终的审判长廊,接受 sans 的审判。
在一次审判中,sans 会发动数次攻击。攻击分为 $$$k$$$ 种类型,其中第 $$$i$$$ 类攻击总共会发动 $$$a_i$$$ 次($$$a_i$$$ 为非负整数)。在审判开始时,你只知道每种攻击的总次数 $$$(a_1, a_2, \dots, a_k)$$$,但并不知道它们的具体攻击顺序。
你的初始处决指数 (Execution Points, EP) 为 $$$1$$$。在 sans 发动每一次攻击前,你可以制定一个应对策略。具体地,在第 $$$j$$$ 次攻击前,令你当前的处决指数为 $$$E_j$$$,你可以选择一组实数 $$$b_1, b_2, \dots, b_k$$$,并需满足以下两个条件:
随后,sans 会从剩余的攻击中选择一种并发动。若此次攻击为第 $$$l$$$ 类,你的处决指数将更新为 $$$E_j + b_l$$$。每当一次攻击结束后,你便会确切地知道该次攻击的类型。
sans 会洞悉你的策略,并总是选择最能压制你的攻击顺序,以使你的最终处决指数尽可能低。而你的目标则是制定最优的 $$$b_i$$$ 选择策略,来最大化这个由 sans 决定的"最坏情况"下的最终处决指数。
这个你通过最优博弈能保证获得的最终处决指数,被称为你的暴力等级 (Level of ViolencE, LV)。
由于你充满了决心,你将经历 sans 所有可能的审判。一次审判由攻击次数向量 $$$(a_1, \dots, a_k)$$$ 定义。所有可能的审判需满足:
两次审判被视为本质不同的,当且仅当它们的攻击次数向量 $$$(a_1, \dots, a_k)$$$ 不同。
你是一个狂妄之人,所以你需要求出这若干次审判你的暴力等级之和,答案对 $$$998244353$$$ 取模。
一行三个非负整数 $$$ n,k,M (0\le n\le M\le 10^5,1\le k\le 10^9)$$$。
输出一行一个数,表示这若干次审判你的暴力等级之和对 $$$ 998244353 $$$ 取模的结果。
1 2 2
7
11 45 14
286390301
对于样例一,你一共会经历 $$$4$$$ 次审判。
可以证明你按照上述策略所得到的最终处决指数都是能保证得到的最终处决指数中最大的,因此你的暴力等级之和为 $$$1 + 2 + 2 + 2 = 7$$$。
gsh 非常喜欢吃饺子!每天,他都会前往学苑食堂品尝美味的饺子。食堂每天会供应不同种类和数量的饺子,而 gsh 希望在自己有限的胃容量内,通过合理选择,收获最大的总愉悦值。
食堂今天提供 $$$n$$$ 种不同的饺子,gsh 最多能吃 $$$m$$$ 个饺子。对于食堂提供的饺子,第 $$$i$$$ 种饺子的总数量为 $$$s_i$$$,其基础愉悦值和边际递减系数分别为 $$$a_i$$$ 与 $$$b_i$$$。特别地,在首次品尝该种饺子时,会有一个 $$$c_i$$$ 的"初见惊喜"加成。
具体来说,吃掉的第 $$$i$$$ 种饺子中的第 $$$j$$$ 个,能获得的愉悦值为 $$$e_{i,j}$$$。这个值是预先确定的,与食用的先后顺序无关,计算方式如下: $$$$$$ e_{i,j} = \begin{cases} a_i + c_i, & \text{当 } j=1 \text{ 时(即第一次吃第 } i \text{ 种饺子)} \\ a_i - b_i \times (j - 1), & \text{当 } j \gt 1 \text{ 时} \end{cases} $$$$$$
此外,gsh 的食量有一个"完美区间"。如果他吃的饺子总数恰好在 $$$[l, r]$$$ 的范围内(包含 $$$l$$$ 和 $$$r$$$),他会感到心满意足,从而额外获得 $$$\mathrm{val}$$$ 点的总愉悦值。
请你帮助 gsh 设计一个吃饺子的方案(即决定每种饺子吃几个),使得他获得的总愉悦值最大化。
第一行输入一个整数 $$$T$$$,表示数据组数($$$1 \le T \le 10^5$$$)。
接下来对每组数据输入如下:
注意:本题不存在对 $$$\sum m$$$ 的约束条件。
对每组数据,输出一行一个整数,表示最大愉悦值。
31 14 5 1 419 19 8 103 25 40 18 2020 4 1 420 3 1 610 -1 2 43 25 40 18 2020 40 3 4020 30 1 6010 -10 2 55
48 50 742
对于第一组数据,只有一种饺子。
gsh 吃了 $$$3$$$ 个饺子,获得的愉悦值分别是:$$$29,11,3$$$,同时额外获得 $$$5$$$ 点愉悦值(由于饺子总数满足 $$$l\le 3\le r$$$)。
对于第二组数据,有 $$$3$$$ 种饺子。
gsh 吃了 $$$8$$$ 个第一种饺子,$$$8$$$ 个第二种饺子,$$$2$$$ 个第三种饺子,获得的愉悦值是 $$$50$$$(包含额外获得的 $$$40$$$ 点愉悦值)。
gsh 喜欢位运算!今天,他在和一个 AI 进行博弈。
博弈规则如下:
请你判断 gsh 是否必胜,若必胜,输出 Yes,否则输出 No。
第一行输入一个整数 $$$T$$$($$$1 \le T \le 10^5$$$),表示数据组数。
接下来对每组数据输入一行四个非负整数 $$$a$$$, $$$b$$$, $$$x$$$, $$$y$$$($$$0 \le a, b, x, y \lt 2^{60}$$$)。
对每组数据输出一行一个字符串 Yes 或 No。
43 6 3 67 4 5 45 4 3 42 4 3 5
Yes Yes No No
对于第一组数据,初始状态下已经满足 $$$a=x,b=y$$$,因此 gsh 必胜。
对于第二组数据,gsh 进行操作 $$$a:=a\mathbin{\&}5$$$,此时达到目标,gsh 必胜。
对于第三组数据和第四组数据,不难证明始终无法达到目标,因此 gsh 必败。
Djangle 很喜欢研究数组操作!
这次,他拿到了一个长度为 $$$n$$$ 的正整数序列 $$$a$$$,并希望对它进行一些操作和查询。他对 gcd(最大公约数) 的性质十分感兴趣,并提出了如下两种操作,每种操作均包含三个参数 $$$l,r,x$$$:
Djangle 太懒了,他甚至懒得算答案。所以他请你帮助他实现一个程序。
第一行输入一个整数 $$$T$$$($$$1 \le T \le 10^5$$$),表示数据组数。
接下来对每组数据输入如下:
对于每个操作 1,输出计算得到的 gcd 之和。
25 532 16 6 34 471 3 4 930 2 4 460 1 2 811 3 5 21 3 3 6910 10974 560 4 870 975 322 233 742 917 6111 2 6 7660 2 6 5621 4 10 9201 6 10 3530 7 10 4810 9 9 2071 1 3 431 1 10 5241 1 2 7100 7 10 190
4 5 1 9 11 5 3 12 2
对于第一组数据:
| 操作 | $$$a_1$$$ | $$$a_2$$$ | $$$a_3$$$ | $$$a_4$$$ | $$$a_5$$$ | 输出 |
| 初始 | $$$32$$$ | $$$16$$$ | $$$6$$$ | $$$34$$$ | $$$47$$$ | |
| 1 3 4 93 | $$$32$$$ | $$$16$$$ | $$$3$$$ | $$$1$$$ | $$$47$$$ | $$$4$$$ |
| 0 2 4 46 | $$$32$$$ | $$$46$$$ | $$$46$$$ | $$$46$$$ | $$$47$$$ | |
| 0 1 2 81 | $$$81$$$ | $$$81$$$ | $$$46$$$ | $$$46$$$ | $$$47$$$ | |
| 1 3 5 2 | $$$81$$$ | $$$81$$$ | $$$2$$$ | $$$2$$$ | $$$1$$$ | $$$5$$$ |
| 1 3 3 69 | $$$81$$$ | $$$81$$$ | $$$1$$$ | $$$2$$$ | $$$1$$$ | $$$1$$$ |
给定一个由只包含小写字母的字符串构成的集合 $$$\{s_i\}$$$,你需要在集合中选出一些字符串,并选择一个合适的顺序拼接成一个新字符串。设这个新的字符串为 $$$S$$$,出题人不希望 $$$S$$$ 中存在子序列 luolikong ,即 $$$S$$$ 中不存在一个位置集合 $$$\{\mathrm{pos}_i\}$$$ 满足
1. 集合的大小为 $$$9$$$ 并且 $$$1\le \mathrm{pos}_i\le |S|$$$。
2. 对于所有 $$$1\le i\le 8,\ \mathrm{pos}_i \lt \mathrm{pos}_{i + 1}$$$。
3. 对于长度为 $$$9$$$ 并且满足 $$$t_i = S_{\mathrm{pos}_i}$$$ 的字符串 $$$t$$$,$$$t= $$$ luolikong。
出题人并不想解释这么做的理由。
你只需要计算可能的 $$$S$$$ 的最大长度即可。
第一行包含一个整数 $$$n$$$($$$1 \le n \le 5000$$$),表示集合 $$$\{s_i\}$$$ 的大小。
接下来的 $$$n$$$ 行,每行包含一个字符串 $$$s_i$$$($$$1 \le |s_i| \le 5 \times 10^5$$$,$$$\sum|s_i|\le 5\times 10^5$$$)。
输出一行一个整数,表示可能的 $$$S$$$ 的最大长度。
5zhongzhikongluolikelisikluikonglikuong
31
一种合法的拼接方案:zhongzhikong kluikong luo likelisi。
容易证明,不存在另一种拼接方案,使得字符串长度大于 $$$31$$$ 且不含子序列 luolikong。
给定一个正整数 $$$n$$$,你需要构造一个 $$$n\times n$$$ 的矩阵。
矩阵的第 $$$i$$$ 行第 $$$j$$$ 个元素,记作$$$A_{i,j}$$$。
你的目标是使得: 对于所有 $$$1 \leq i \leq n$$$ 且 $$$1 \leq j \leq n$$$,都有
并且所有的数字都满足 $$$ 1 \le A_{i,j} \le n^2 + 40 n $$$,且所有数字互不相同。
也就是说,矩阵中,所有的数字与它上下左右相邻的四个数字都互质,并且矩阵中的数都不超过 $$$n^2 + 40n$$$。
$$$\gcd(x,y)$$$ 表示 $$$x$$$ 和 $$$y$$$ 的最大公约数。
一行一个正整数 $$$n(1 \le n \le 2500)$$$。
输出 $$$n$$$ 行,每行 $$$n$$$ 个正整数,用空格分隔。如果有多种满足条件的解,输出任意合法解即可。
2
1 3 5 4
3
1 5 9 4 7 8 3 2 11
本题输出数据量较大,请在程序开头添加以下语句以关闭输入输出流同步,加快输出速度:
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
很遗憾通知大家,受美国 $$$125\%$$$ 关税影响,今天的 v 我 $$$50$$$ 活动取消,改为 v 我 $$$112.5$$$。
每逢周四,关税政策的变动都会影响需要支付的费用。给定当前关税百分比 $$$x$$$,计算你需要支付的总金额。 费用计算规则如下:
一个整数 $$$ x $$$($$$0 \le x \le 19198100$$$),表示关税税率为 $$$x \%$$$。
输出总费用,保留三位小数(四舍五入),格式为:Vivo [金额]
100
Vivo 100.000
125
Vivo 112.500
735568
Vivo 367834.000
0
Vivo 50.000
有一棵包含 $$$n$$$ 个节点的有根树,其根节点为 1。每个节点上站着一个人,每个人要么是"诚实者"(总是说真话),要么是"说谎者"(总是说假话)。
现在,对于每个 $$$i \in [1,n]$$$,位于节点 $$$i$$$ 的人都说了一句话:"以我所在的节点为根的子树中,恰好有 $$$a_i$$$ 个诚实者。"
一个"真假分配情况"是指为每个节点的人分配一个"诚实者"或"说谎者"的身份。你需要计算,有多少种可能的真假分配情况,能够满足以下逻辑自洽条件:
gsh 对真相非常感兴趣,他想知道满足上述条件的真假分配情况总共有多少种。请输出答案对 $$$998244353$$$ 取模的结果。
第一行输入一个整数 $$$T$$$($$$1 \le T \le 5000$$$),表示数据组数。
接下来对每组数据输入如下:
对每组数据输出一行一个整数表示答案对 $$$998244353$$$ 取模后的结果。
631 2 31 21 330 2 31 21 330 2 11 21 355 1 1 1 45 14 55 32 555 1 3 4 15 32 31 44 363 5 1 0 1 02 64 52 36 14 2
2 0 1 10 7 3
对于第一组数据,有 $$$2$$$ 种可能:
对于第二组数据,没有合法方案。
对于第三组数据,只有唯一一种可能:1 号说假话,2 号说假话,3 号说真话。
Djangle 给你一个连通的简单无向图,初始时每条边都有一个颜色:白色或黑色。
每次操作,你可以选择一个包含至少一条白边的简单环,将这个环中所有的边都涂成黑色。请注意,你并不一定需要最终把所有边都变为黑色。
请问,最多可以进行多少次这样的操作?
简单环的定义是:由若干条边首尾连接而成的闭合路径,且其中没有重复的边。
第一行包含一个整数 $$$T(1\le T\le 10^4)$$$,表示数据组数。
接下来每组数据的第一行包含两个整数 $$$n, m(1\le n\le \sum n\le 2\times 10^5,n-1\le m\le \min\{3\times 10^5,\frac{n\times (n-1)}{2}\},\sum m\le 3\times 10^5)$$$,表示图的点数和边数。
接下来 $$$m$$$ 行,每行包含三个整数 $$$u, v, \mathrm{col}(1\le u,v\le n,\mathrm{col}\in\{0,1\})$$$,表示存在一条连接点 $$$u$$$ 和点 $$$v$$$ 的无向边,颜色为 $$$\mathrm{col}$$$。如果 $$$\mathrm{col} = 0$$$,表示该边为白色;否则表示该边为黑色。
保证输入的图没有重边和自环。
对于每组数据,输出一个整数,表示最多可以进行多少次操作。
19 101 2 12 3 03 4 14 5 05 6 16 7 07 8 18 1 02 9 09 6 1
2
第一次操作简单环 $$$2-9-6-7-8-1-2$$$,第二次操作简单环 $$$1-2-3-4-5-6-7-8-1$$$。
容易证明,不存在其他的操作方案,能够操作 $$$3$$$ 次以上。
"本手、妙手、俗手、举手"是围棋的四个术语。本手是指合乎棋理的正规下法;妙手是指出人意料的精妙下法;俗手是指貌似合理,而从全局看通常会受损的下法。棋手应该从本手开始,本手的功夫扎实了,棋力才会提高,才能下出妙手,否则难免下出俗手。不过在你主场作战又下不出妙手时,你也可以尝试通过举手直接获得胜利。
近日 H 国举行了围棋比赛邀请您参加,您一路过关斩将。为增加比赛难度,H 国特推出一条新规则。棋手提子后,必须放入棋盒盖中。若有两枚或更多棋子没有被成功放入棋盒盖中,你会立刻输掉这盘棋。这些没能成功留在棋盒盖中的棋子,我们称之为界外棋子。
您马上要和 H 国选手进行决赛第二轮的比拼,因为对方是 H 国本国选手,所以他可以使用举手的方式额外增加比赛难度。
形式化地,我们可以将问题简化成如下的情景:
行棋总共有 $$$n$$$ 回合,每回合都严格顺次进行如下阶段。在任何一个阶段中,一旦您的界外棋子总数达到 $$$2$$$,或被对方成功举手,您都将立刻输掉比赛。
因为决赛中您思考十分专注,并且对此规则并不熟悉,所以您并不会注意到您掉出棋盒盖的棋子,也不会将它们放回。
现在,对于 $$$n$$$ 个回合中的每一个回合,请计算您恰好在此回合因为规则或对方举手而输掉的概率。
第一行包含三个非负整数 $$$p$$$,$$$q$$$,$$$r$$$($$$0 \le p, q, r \le 1000$$$),表示各项规则的概率参数。
第二行包含一个正整数 $$$n$$$($$$1 \le n \le 10^5$$$),表示比赛回合数。
第三行包含 $$$n$$$ 个非负整数 $$$a_1, a_2, \ldots, a_n$$$($$$0 \le a_i \le 10^9$$$),表示每回合的提子数。
输出 $$$n$$$ 行,每行表示当回合的失败概率。若概率为 $$$0$$$ 则输出 $$$0$$$,否则输出 $$$PQ^{-1} \bmod (10^9+7)$$$,其中 $$$\frac{P}{Q}$$$ 为最简分数形式。
可以证明,每回合失败概率要么是 $$$0$$$,要么可以表示为 $$$\frac{P}{Q}$$$($$$P$$$,$$$Q$$$ 互质)。
0 500 1000379 2 0
0 0 500000004
0 500 0279 3
0 250000002
500 500 50031 1 1
0 375000003 531250004
431 404 519200 8 10 8 10 0 8 9 10 2 0 6 0 7 4 1 5 3 6 5
0 65193629 491317294 880422337 670795490 121913119 186949131 942576908 924311201 247154371 759862879 967726799 679692511 202922928 490250649 551050329 827900501 946464281 916292188 461482115
对于样例一,$$$p'=0$$$, $$$q'=\frac12$$$, $$$r'=1$$$。在第一回合,您提了 $$$79$$$ 子,全部成功放入棋盒盖。在第二回合,您提的第一颗棋子成功放入棋盒盖,第二颗棋子有 $$$\frac12$$$ 的概率没能放入棋盒盖。在这一情形下,对方在第三回合一定会举手,因此您在第三回合输掉的概率为 $$$\frac12$$$。
对于样例二,$$$p'=0, q'=\frac12, r'=0$$$。在第一回合,您提了 $$$79$$$ 子,全部成功放入棋盒盖。在第二回合,您提的第一颗棋子成功放入棋盒盖,后两颗棋子各自独立地有 $$$\frac12$$$ 的概率没能放入棋盒盖。因此,您在第二回合输掉的概率为 $$$\frac14$$$。
对于样例三,您在第二回合输掉的概率是 $$$\frac38$$$,在第三回合输掉的概率是 $$$\frac{9}{32}$$$。
jzh 有一个 $$$n\times m$$$ 的迷宫,每个格子上都有一面反弹板。反弹板的类型可能是以下两种之一:
迷宫被矩形反弹板包围,如果小球垂直撞击迷宫边界上的反弹板,小球会原路返回。
Djangle 有两个锤子,他可以在小球运动过程中任意时刻锤碎最多两个反弹板(可以先用反弹板反弹后锤碎反弹板),小球经过被锤碎的反弹板时不会发生反弹。
Djangle 锤碎位于第 $$$ i $$$ 行第 $$$ j $$$ 列的反弹板需要耗费 $$$a_{i,j}$$$ 的体力。
注意:Djangle 可以只使用一个锤子或者不使用锤子。
gsh 觉得这个过程很有趣,他想知道:小球从一个格子按照某一方向发射,能否到达另一个格子,如果能,Djangle 最少要花费多少体力。
第一行三个整数 $$$n$$$,$$$m$$$,$$$q$$$($$$1 \le n, m \le 5\times 10^5 $$$,$$$1\le n\times m\leq 4\times 10^6$$$,$$$1 \leq q \leq 10^6$$$) 分别表示迷宫的行,列,和询问次数。
接下来 $$$ n $$$ 行,第 $$$i$$$ 行第 $$$j$$$ 个字符 $$$S_{i,j} \in \{\texttt{\\}, \texttt{/}\}$$$ 表示第 $$$i$$$ 行第 $$$j$$$ 列的反弹板样式。
接下来 $$$ n $$$ 行,每行包含 $$$m$$$ 个正整数,表示 $$$a_{i,j}$$$($$$1\le a_{i,j}\le 10^9$$$)。
接下来 $$$q$$$ 行,每行包含用空格分开的五个询问参数:
起始坐标:$$$(\mathrm{startx}, \mathrm{starty})$$$。
发射方向:$$$\mathrm{direction} \in \{\texttt{N}, \texttt{S}, \texttt{W}, \texttt{E}\}$$$ 分别代表北(上),南(下),西(左),东(右)。
目标坐标:$$$(\mathrm{endx}, \mathrm{endy})$$$。
$$$1\le \mathrm{startx},\mathrm{endx}\le n,1\le \mathrm{starty},\mathrm{endy}\le m$$$。
对于每一个询问,输出一个整数,表示 Djangle 最少需要花费多少体力。如果小球无论如何都不能到达目标格子,输出 $$$-1$$$。
2 3 1/\\///2 3 14 6 51 1 E 2 3
3
3 3 5\\\\/\/\\3 1 11 4 12 5 11 3 N 1 23 3 S 2 32 3 W 2 33 1 S 1 22 2 S 1 2
1 0 0 3 1
对于样例一:
见习魔法少女 Chiaro 正在参加魔法使考试,大魔法使 Shiro 在她面前放置了 $$$n$$$ 个没有任何魔力值的魔法球,Chiaro 需要施加若干次魔法,让这些魔力球各装满指定大小的魔力值。
具体来说,初始时这些魔法球的魔力值都是 $$$0$$$,Chiaro 要在施加若干次魔法后使得第 $$$i$$$ 个魔法球最终有 $$$a_i$$$ 的魔力值。然而 Chiaro 作为见习魔法少女掌握的魔力知识很少,她只会两种魔法,而且每种魔法都会消耗一定的体力:
很显然,Chiaro 一定可以只用上述两种魔法若干次来完成这项测试。不过这场魔法使考试才刚刚开始,后面还有很多更困难的测试项目,所以 Chiaro 想用尽可能少的体力完成这个测试,请你帮她算出最少用多少体力可以完成这个测试。
第一行三个非负整数 $$$n,x,y(1\leq n\leq 3\times 10^5,0\leq x,y\leq 10^7)$$$。
接下来一行 $$$n$$$ 个非负整数表示序列 $$$a_1,a_2,\cdots,a_n(0\leq a_i\leq 10^9)$$$。
一行一个整数,表示消耗的最少体力值。
6 1 11 1 4 5 1 4
9
5 2 510 7 9 0 3
32