子串的定义:一个字符串删除任意长度(可以为0)的前缀、后缀之后剩下的字符串。空串是任意字符串的子串。
显然会有很多方式进行选择,魔女宁宁想知道,最后盒子上的数字序列,字典序最小的是哪一种?
形式化的,你需要使得数列 $$$b_1,b_2,b_3...b_k$$$ 字典序最小。注意 $$$b_i \ge 0$$$,也就是说,盒子里可以是空的
例如:
存在四个盒子:$$$ababc$$$ ,$$$ggoppo$$$,$$$fft$$$, $$$wwwwk$$$ 。
糖果串为:$$$baboppowk$$$。
走到第一个盒子时,取出 $$$bab$$$,此时 $$$S$$$ 剩余 $$$oppowk$$$;
走到第二个盒子时,取出$$$oppo$$$,此时 $$$S$$$ 剩余 $$$wk$$$;
第三个时,只能取出空串,此时 $$$S$$$ 剩余 $$$wk$$$;
第四个时,取出 $$$wk$$$,恰好取完,此时 $$$S$$$ 为空;
那么可以将糖果串分为 : $$$bab-oppo-$$$空$$$-wk$$$ 三段(四份)。显然他们是对应四个盒子的子串。
最后的盒子上标上的数字为: $$$3,4,0,2$$$
第一行一个数字 $$$T$$$ ,表示测试组数。
每一个测试组由以下输入组成:
保证字符串只存在小写字母,输入的总字符串长度 $$$ \le 2 \times 10 ^ 6$$$
输出 $$$T$$$ 行,每行 $$$k$$$ 个非负整数 $$$b_1,b_2,b_3,\ldots ,b_k$$$ ,用空格隔开,行尾没有多余空格。
你需要保证数列$$$b_1,b_2,b_3,\ldots ,b_k$$$字典序最小。数据保证每个测试组都有解。
5 3 19 iamdata juststructure notstring datastructurestring 3 8 iiiiii llove yesxtu ilovextu 3 3 not aurora st nst 3 15 kids mother people kidmotherpeople 3 6 bbbb bbbccc dddd bbbcdd
4 9 6 1 4 3 1 0 2 3 6 6 0 4 2
疯狂星期四,v me 50!!
每到星期四,zy就像让别人给他$$$50$$$块钱去吃肯德基,而Belmaxi是个大善人,为了能让zy吃到肯德基,他给zy设计了这样一个游戏:
第一天是星期四。接下来的几天里(包括第一天),zy每天上午8点坚持给Belmaxi发$$$5$$$块钱大红包,每到星期四晚上 23:59,Belmaxi就会检查一下,zy是否在此时之前连续7天(包括周四当天)都给他发了红包,如果是,那么Belmaxi就是发给zy一个价值50元的红包;否则Belmaxi只会给zy发一句嘲讽。
经历了 $$$n$$$ 天之后,Belmaxi 翻了聊天记录
Belmaxi 知道哪些天,zy 忘记发他 $$$5$$$ 块钱,他现在给出 zy 忘记发钱的所有日期。Belmaxi 想知道自己的盈亏情况。
第一行一个整数$$$T,(T\le 10^3)$$$
每个样例第一行两个整数$$$n,(n\le 10^{16})$$$,$$$x,(x\le 10^5)$$$,表示经过了$$$n$$$天,有$$$x$$$天zy忘记给钱了
接下来一行$$$x$$$个整数 $$$a_i$$$,表示zy在第 $$$a_i$$$ 天忘记发红包了,保证 $$$a_i$$$ 按照升序给出。
每个样例一个整数,表示Belmaxi的盈亏情况
2 15 2 7 8 16 1 16
15 -25
第一个样例,zy在第七天(星期三,已经连续6天了)忘记给Belmaxi$$$5$$$块钱了,此时Belmaxi已经赚了$$$30$$$元。第八天Belmaxi没收到钱,第九天(星期五)到第15天(星期四),刚好连续7天,zy给Belmaxi$$$35$$$元,Belmaxi给zy$$$50$$$元。Belmaxi净赚$$$30+35-50=15$$$元
第一个样例
Markdown 是一种轻量级的文本格式,它可以很容易转换HTML,其中表格的语法规则如下:
根据Markdown,请按如下格式转换成文本表格:
比如
Name|English | Math | Data Structure | Total
---- | :-----: | ---: | :-- | :--
Alice| 100 | 85 | 75 | 260
Bob | 85 | 100 | 85 | 270
+-------+---------+------+----------------+-------+
| Name | English | Math | Data Structure | Total |
+-------+---------+------+----------------+-------+
| Alice | 100 | 85 | 75 | 260 |
| Bob | 85 | 100 | 85 | 270 |
+-------+---------+------+----------------+-------+
只含单一样例。 输入保证没有错误的数据,表格单元格至少有一行。 每行字符串的长度不超过200,表头与单元格字符串只含英文字母、数字、空格。 输入保证单元格的行、列数都不超过10。
按要求输出文本表格,行首尾无空格,也不要有空行。
Name|Math | C Prog | Total ---- | :-----: | ---: | :-- Alice| 100 | 75 | 175 Bob | 85|99 |184
+-------+------+--------+-------+ | Name | Math | C Prog | Total | +-------+------+--------+-------+ | Alice | 100 | 75 | 175 | | Bob | 85 | 99 | 184 | +-------+------+--------+-------+
Clamee 捡到了一本古籍,上面有神奇的咒语:"一只青蛙一张嘴,两只眼睛四条腿。两只青蛙...."。Clamee 念咒之后,天空一声"咕呱!孤寡!",孤寡青蛙之神从天而降!
孤寡青蛙之神给了 Clamee 一个 $$$n \times m$$$ 的字符画,上面画有青蛙。 Clamee 想知道上面画了几只青蛙,只要数出来,孤寡青蛙之神就会离开他。
下面给出青蛙的字符画形式:
![]() | ![]() |
孤寡!孤寡!神! 第一行两个数 $$$n,m~(1 \le n,m \le 100)$$$,依次表示字符画的行数和列数。
接下来 $$$n$$$ 行,每行 $$$m$$$ 个字符,描述这张字符画。
输出一行,为一个整数,表示画上的青蛙只数。
9 9 ..@..@... .(\--/).. (.>__<.). ^^^..^^^. ......... ...@..@.. ..(\--/). .(.>__<.) .^^^..^^^
2
保证除了完整的青蛙 外只含 '.' 字符,并且每个青蛙是以端正的姿势出现,不会出现倒置、歪斜、扭曲的情况,不会出现头身分离的情况,保证青蛙之间不会重叠。
Belmaxi渴望长生不老,他翻遍古籍,花费数年时间走遍天下,寻访仙山,终于在海外的一座荒山上发现了一个神秘的洞穴。洞穴里有一卷古老的经卷和一颗闪烁着微光的种子。他展开经卷,其上写着这样一段话。
"凡人啊,吾乃创世之神,盘古,汝既寻至此,便与吾有缘。"
"此乃仙种,落地生根,吾传汝两句真言,可令仙种成长。"
"首句真言:圆"
"次句真言:劈"
"......"
阅读完经卷,Belmaxi恍然大悟。
首先,他需要耗费$$$k$$$年修为,将仙种种下,此时仙种将会立刻变成一株高$$$1$$$尺的仙树。
随后,在任意时刻,他可以耗费$$$1$$$年修为,喊出"圆"字真言,可以使得树长高$$$1$$$倍。
或者,当树高为偶数时,他可以耗费$$$k-1$$$年修为,喊出"劈"字真言,树会长高$$$1$$$尺。
盘古大神在经卷的末尾明示:仙树在高度不低于$$$L$$$尺,不超过$$$R$$$尺,且耗费修为年数正好能够被$$$k$$$整除时,会长出令人长生不老的仙果。
Belmaxi不够聪明,他想要问问屏幕前的你,他该如何操作,才能获得仙果?
(提示:$$$n$$$被$$$k$$$整除是指$$$n \div k$$$的余数是$$$0$$$ )
第一行给出一个正整数T,表示样例的个数。$$$(1\le T\le 10^5)$$$
对于每个样例,给出一行,每行给出三个正整数数$$$L,R,k,~(2 \le L\le R\le 5*10^{18},1\le k\le 50)$$$
对于每个样例,输出格式如下:
如果没有办法使得Belmaxi获得仙果,直接输出-1。
否则,你需要输出两行,第一行为一个正整数$$$n$$$,表示你的操作次数。第二行输出一个长度为n的字符串表示你的操作顺序,使得在你的操作之后,仙树符合条件长出仙果。(字符O代表"圆"字真言,P代表"劈"字真言)。
(注意:$$$n$$$不能超过$$$200$$$,可以证明操作次数不可能超过$$$200$$$次,输出大于$$$200$$$的$$$n$$$一律视为错误答案)
(注意:如果有多种操作方式,输出任意一种即可)
3 3 6 2 8 12 3 9 12 5
2 OP 3 OOO -1
对于"3 6 2"的样例给出以下解释:
初始时树高1尺,耗费修为2年;
使用一次"圆"字真言后,树高2尺,耗费修为3年;
使用一次"劈"字真言后,树高3尺,耗费修为4年;
此时树高在范围内且耗费修为年数被k整除。
————————————————————————
对于"8 12 3"的样例给出以下解释:
初始时树高1尺,耗费修为3年;
使用一次"圆"字真言后,树高2尺,耗费修为4年;
使用一次"圆"字真言后,树高4尺,耗费修为5年;
使用一次"圆"字真言后,树高8尺,耗费修为6年;
此时树高在范围内且耗费修为年数被k整除。
给你一个长度为$$$n$$$,只含小写字符的字符串$$$str$$$,你要统计满足如下条件的三元组$$$ \lt a,b,c \gt $$$的数量
第一行一个整数 $$$(1 \le T \le 10000)$$$,表示数据组数
每组测试数据占一行,分别为字符串长度$$$n(3 \le n \le 100000)$$$和字符串$$$str$$$
保证单个测试样例的字符串长度之和不超过100000
每组数据输出$$$1$$$行,代表该样例中满足条件的三元组的数量
2 6 abcabc 6 abcbcb
0 1
注意,如果你想的只是朴素的$$$O(n^2)$$$枚举的方法来统计答案,那么请再仔细考虑。
改编自xtuoj 1406
Alice和Bob正在玩一个基于字符串的游戏,一开始,Alice和Bob分别拥有一个等长的字符串 $$$S1$$$ 和 $$$S2$$$,且这两个字符串只包含小写字母。
在每个回合中,Alice和Bob 必须 分别选择 对方 的字符串的某一个位置并把这个位置上的字母改变为其他小写字母。
经过 $$$P$$$ 个回合后,他们的得分分别等于自己的字符串中出现最多的字母出现的次数。 最终得分高者获胜,如果两人得分相等,则为平局。
现在你知道了初始的两个字符串 $$$S1$$$ 、$$$S2$$$ 和回合数 $$$P$$$,如果两人都以最优策略游戏,请问最后谁能获胜或者结果是平局。
第一行是一个数 $$$T~(1 \le T \le 2000)$$$ ,表示样例的个数。 然后每个样例第一行两个数字,分别是字符串长度 $$$N$$$ 和回合数$$$P$$$ ,$$$(1 \le N \le 500,0 \le P \le 10^9)$$$。 接下来两行是两个字符串$$$S1$$$ , $$$S2$$$ ,分别是Alice和Bob的初始字符串。
对于每个样例,输出一行。如果Alice能获胜,输出 "Alice" ,如果结果是平局,输出 "Draw" ,否则输出 "Bob" 。
5 26 1 qwertyuiopasdfghjklzxcvbnm qwertyuiopasdqghjklzxcvbnm 6 2 aabcsd ooookr 5 2 aaaaa bbbds 5 5 abdhj jdufh 5 0 aabbb bbdes
Alice Bob Alice Draw Alice
Clamee 发现 X 校准备建 $$$n$$$ 栋房子,该校准备采用如下方案建造:
第一列建 $$$x$$$ 栋,之后每列所建房子的数量都不多于前一列,且每列建的房子数量必为正数,假设一共建了 $$$y$$$ 列。
那么在这个方案下,X 校要会申请 $$$x\cdot y$$$ 单位面积的土地。
Clamee 想知道所有建 $$$n(1\le n\le 10^5)$$$ 栋房子的方案所占用的土地面积之和,对给定质数 $$$p(2\le p\le 2^{31}-1)$$$ 取模。
两个方案不同当且仅当两方案所建列数不同或存在一列在两方案中所建房子数量不同。
一行,两个数,$$$n$$$ 和 $$$p$$$,含义如题面所述。
所占用土地面积之和对 $$$p$$$ 取模的结果。
3 998244353
10
以下给出了所有的工程方案:
继逆天求和之后,Belmaxi想更逆天一些了,于是他想到了逆天第二重,让你求出下面这个函数:
$$$$$$ f(n)=\sum_{i=1}^{n}\sum_{j=1}^{n}{\lfloor\frac{i}{j}\rfloor} $$$$$$
比如
$$$$$$ \begin{array}{rcl} f(1)& = & 1 \\ f(2)& = & \lfloor \frac{1}{1} \rfloor + \lfloor \frac{1}{2} \rfloor + \lfloor \frac{2}{1} \rfloor + \lfloor \frac{2}{2} \rfloor = 4 \\ \cdots \end{array} $$$$$$
现在已知$$$n$$$,请计算$$$f(n)$$$。
第一行一个正整数 $$$T~(T\le 10^3)$$$,表示样例组数。
接下来的每组样例,每行一个正整数$$$n$$$,含义同题干的公式。
对于所有样例$$$\sum{n} \le 10^7$$$
每个样例占一行,输出上述式子的结果,为一个整数。
3 5 21 9999974
27 670 788622283414245
湘大的网络拓扑可以看成一幅联通树形图(数据结构中的"树"),其中网络中心所在的位置是 $$$1$$$ 号点,也就是根节点。路由器以及服务器都可以看成一个节点。总共有 $$$n$$$ 个节点,$$$n- 1$$$ 条边,每条边就是一条线路,每条线路会有一个传输时延 $$$t$$$,从节点 $$$a$$$ 到 $$$b$$$ 的时间等于$$$a,b$$$ 之间 最短路径上的传输时延之和。
现在网络中心获得了一笔经费,这笔经费可以足够整改 $$$k$$$ 次线路,每一次整改可以将这条线路的时延减少 $$$\lfloor \frac{t}{2} \rfloor$$$。也就是说,对一条时延为 $$$t$$$ 的线路进行一次整改,它的时延由 $$$t$$$ 变为 $$$\lceil \frac{t}{2} \rceil$$$ ,并且一条线路可以经历多次整改。注意区分"线路"与"路径"的区别,线路只指一条边。
我们设 $$$f(x)$$$ 为从 $$$1$$$ 号点传输消息到 $$$x$$$ 点需要的时延(注意,只是单向的,所以你不需要考虑消息回送),由于网络中心需要长期发布一些消息,所以网络中心想知道经历整改后可以使得 $$$\sum _{i=2}^n{f(i)}$$$ 最小为多少?
$$$\lfloor x \rfloor$$$ 表示不大于 $$$x$$$ 的最大整数,即向下取整。$$$\lceil x \rceil$$$ 表示不小于 $$$x$$$ 的最小整数,即向上取整。
形式化的说:给定一棵 $$$n$$$ 个节点的带权树形图,你有 $$$k$$$ 次机会,每次你可以选择一条边,使得它的边权从 $$$t_i$$$ 变为 $$$\lceil \frac{t_i}{2} \rceil$$$,询问你所有点到根节点的路径和最小是多少?
第一行一个数字 $$$T$$$ ,代表测试组数。
对于每组输入,由以下部分组成:
输出 $$$T$$$ 行,每行一个整数 $$$W$$$ ,表示最小时延和。
3 5 3 2 1 4 3 1 6 4 2 3 5 3 1 5 3 2 1 9 3 2 6 4 3 9 5 4 7 5 3 2 1 586754654 3 1 313989971 4 3 557336509 5 4 748196409
12 46 1989174327