#P17717. [LAOI Round 21] 拼积木 / block
[LAOI Round 21] 拼积木 / block
背景
题目来源:【HT-130-Div.3】核桃 CSP-J 组模拟赛
LAOI 欢迎您。
题目描述
在变完魔术以后,小 Hex 和小 Toast 又开始玩起了他的积木。
小 Hex 把他的所有积木整理起来,按美丽度从大到小的顺序把他的所有积木排成一行。此时排序后第 块积木的美丽度为 。现在小 Hex 想把他的一段连续区间的所有积木拼成一座积木塔,并邀请小 Toast 观赏。
然而小 Toast 对积木塔有着独特的审美。小 Toast 计算一段区间 的积木的「奇异值()」的方法如下:
- 首先,小 Hex 拿出了第 块积木
- 此时令 。
- 接下来,小 Hex 会依次将第 ,第 ,,第 块积木拼在现有的积木塔上。假设小 Hex 目前在拼接第 块积木。
- 此时令 $t\gets \lfloor\frac{\max(t,a_i)}{\min(t,a_i)}\rfloor$。
最终,如果奇异值 为 ,那么小 Toast 则称这段区间是好的。现在小 Toast 想要知道,对于所有的 ,有多少段区间是好的?
简要题意
多次询问,每次给定一个单调不增的序列 ,对于 的一个非空区间 ,初始时令变量 。从 到 枚举下标 ,依次执行操作 ,所有操作完成后最终 ,则称这个区间是好的。
现询问 有多少个非空区间是好的。
输入格式
本题有多组测试数据。
第一行给定一个正整数 ,表示数据组数。
对于每组数据:
- 第一行输入一个正整数 ,表示序列长度;
- 第二行输入 个正整数,表示序列 。
输出格式
共 行,对于每组测试数据,输出一个整数表示答案。
3
3
3 2 2
1
5
5
6 4 3 2 1
2
0
7
2
7
30 19 9 8 5 4 1
4
12 11 10 9
12
4
提示
【样例 1 解释】
- 对于第一组测试数据,好的区间有 、;
- 如果区间为 ,那么初始时 ,拼接第 块积木时,$t\gets \lfloor\frac{\max(3,2)}{\min(3,2)}\rfloor=\lfloor\frac{3}{2}\rfloor=1$。因此这个区间是好的。
- 如果区间为 ,那么初始时 ,拼接第 块积木时,$t\gets \lfloor\frac{\max(2,2)}{\min(2,2)}\rfloor=\lfloor\frac{2}{2}\rfloor=1$。因此这个区间是好的。
- 对于第二组测试数据,可以证明不存在好的区间。
- 对于第三组测试数据,好的区间有 、、、、、、。
【样例 3】
见选手目录下的 block/block3.in 与 block/block3.ans。
该样例满足测试点 的约束条件。
【样例 4】
见选手目录下的 block/block4.in 与 block/block4.ans。
该样例满足测试点 的约束条件。
【样例 5】
见选手目录下的 block/block5.in 与 block/block5.ans。
该样例满足测试点 的约束条件。
【样例 6】
见选手目录下的 block/block6.in 与 block/block6.ans。
该样例满足测试点 的约束条件。
【样例 7】
见选手目录下的 block/block7.in 与 block/block7.ans。
该样例满足测试点 的约束条件。
【样例 8】
见选手目录下的 block/block8.in 与 block/block8.ans。
该样例满足测试点 的约束条件。
【数据范围】
对于所有测试数据,保证 ,,。
为表述方便,下面记 为测试点内所有 之和。
::cute-table{tuack}
| 测试点编号 | 特殊性质 | |
|---|---|---|
| 无 | ||
| A | ||
| ^ | B | |
| C | ||
| 无 |
特殊性质 A:对于所有的 ,保证 。
特殊性质 B:保证所有的 相同。
特殊性质 C:对于所有的 ,保证 。