10.12~13集训题目

半世苍凉 提交于 2019-12-01 07:48:38

Day1

A. 硬币求和

题目描述

$ Magolor $ 有一排 $ n $ 个纵截面积为 \(1\) 的硬币。这里硬币可以抽象为一个竖立着的圆柱,纵截面积就是圆柱的左视图面积。

每个硬币面值不一样,==第 \(i\) 个硬币面值是 \(i\)==。面值越大的硬币的底面圆面积当然应该越大。具体地,面值为 \(1\) 的硬币的底面圆面积为 \(1\) 个单位圆(即半径为 \(1\) 的圆)的面积;对于所有硬币的底面圆面积正比于面值。

现在请将 \(n\)个 硬币摞成一座塔(当然不能把硬币竖起来了),要求相邻的硬币面值差不超过 \(3\) 。求这座塔的最小高度。请下取整输出。

由于浮点数存在较大的精度误差,只要误差不超过 \(±1\) 即可。

输入格式

只有一行输入一个正整数 \(n\)

输出格式

只有一行输出一个非负整数表示最小高度,下取整输出。

样例输入

2

样例输出

0

样例解释

对于两个硬币的情况,第一个硬币面值为1,高度为1/2;第二个硬币面值为2,高度为 $ \sqrt{2}/4 $ 。两个硬币的面值差总是不超过3,因此怎么摞都可以,高度都是 $ 1/2+\sqrt{2}/4≈0.8535531/2+2/4≈0.853553。$

注意下取整后输出0,当然,输出1也会被视为正确(请不要输出负数,输出负数结果的正确性不予以保证)。更多样例下载

数据范围

10%:n≤2

30%:n≤100

50%:n≤10^5^

70%:n≤10^9^

100%:1≤n≤10^18^

B. 汉诺塔

题目描述

Magolor对汉诺塔很感兴趣。但是他觉得只有3个柱子的汉诺塔并不能适应OI中计算机的强大计算力。别说3个柱子,就算是4个、5个......甚至1500个柱子的汉诺塔,用神威·太湖之光也可以轻松计算出来。

Magolor相信所有人都是这样认为的,于是他想:

"既然大家都认为1500个柱子的汉诺塔是可以轻松解决的,那么我把这道题出出来一定就是一道送分题,能体现我凉心良心出题人的本质。"(大雾)

因此,给定一个有n个盘子的m阶汉诺塔(有个柱子),求最小步数。

输入格式

第一行输入一个正整数T代表数据组数。接下来T行每行两个正整数n和m。

输出格式

对于每组数据,输出一行一个数字表示最少所需步数。如果无论如何都无法达到目标,输出No Solution

样例输入

2
5 3
5 4

样例输出

31
13

样例解释

汉诺塔的规则是这样的: 有m个柱子和n个大小分别为1∼n单位的圆环。一开始n个圆环串在编号为1的柱子上,从上往下圆环大小递增。每一步可以选择某个柱子上最上方的圆盘,将其移动到另外一个柱子最上方。要求每次移动后不存在某个大小更大的圆盘在某个大小更小的圆盘的同一根柱子的更上方。最后的目标是将n个圆环挪动到m号柱子上,从上往下圆环大小递增。

了解了汉诺塔的规则以后应该可以轻松手玩样例了。>_<。

更多样例下载

数据范围

存在至少10%的数据满足 n,m≤5。

另外存在至少10%的数据满足 ,m≤3 。

另外存在至少20%的数据满足m≤4。

对于70%的数据都有n,m≤100。

70%以外,另外存在至少10%的数据满足T=1。

对于100%的数据,都满足1≤n,m,T≤1500。

C. 随机子树

题目描述

Magolor拥有一棵n个点的树。

每天,Magolor会随机选择一个连通块(一棵子树)。Magolor想要确认这个连通块是毒瘤的,于是他会随机选择从一个点出发走向另一个点的最短路径巡视,巡视走过的距离是两个点之间唯一最短路径包含的边数。

Magolor不希望巡视距离太短,那样起不到有效检查;Magolor也不希望巡视距离太长,那样太累。于是他想问: 均匀随机选择一个连通块,有多大概率这一天巡视时有可能走过的最长距离也一定在 [ L , R ] 之间。

输入格式

只有一行输入三个正整数 n , L , R 。 接下来行 n − 1 ,每行两个正整数 u , v 表示 u , v 之间有一条边。保证输入是一棵树。

输出格式

只有一行输出一个整数。为 mod 998244353 意义下的概率。即如果答案可以表示成最简分数 \(\dfrac{p}{q}\) ,请输出 \(p×q^{−1} \ mod \ 998244353\) ,其中 \(q^{-1}\) 代表模意义下逆元。。

样例输入

5 2 3
1 2
1 3
3 4
3 5

样例输出

528482305

样例解释

这棵树总共有17种不同的子连通块,其中[1],[2],[3],[4],[5]最长巡视距离为0,[1,2],[1,3],[3,4],[3,5]最长巡视距离为1,[1,2,3],[1,3,4],[1,3,5],[3,4,5],[1,3,4,5]最长巡视距离为2,[1,2,3,4],[1,2,3,5],[1,2,3,4,5] 最长巡视距离为3。因此最长巡视距离在[2 3]之间的概率为 \(\dfrac{5+3}{17} = \dfrac{8}{17}\)

更多样例下载

数据范围

对于10%的数据满足n≤5。 对于30%的数据满足n≤100。 对于50%的数据满足n≤5000。 存在与这50%的数据不完全重合的20%数据,满足树是一条链。 对于100%的数据满足1≤n≤2×10^5^,1≤L≤R≤n。数据存在梯度。

Day2





A. 扫雷

输入格式

Mys_C_K认为现在的扫雷都太简单了,想要造一局超级难的扫雷。

一局超级难的扫雷在一个 \(n×m\) 的网格上进行。当然,扫雷也不能太难,为此他希望没有5个雷连成一串,即对于水平方向、竖直方向、左上-右下方向和左下-右上方向来说没有连续5个雷。

同时他希望最大化雷的数目。

输出格式

首先输出你的方案中的非雷网格数目。

然后输出你的扫雷方案。用 \(0\) 表示雷,用 \(1\) 表示非雷。如果有多个最优方案输出任何一个即可。

样例输入

5 5

样例输出

5
00001
10000
00100
00010
01000

更多样例下载

数据范围

对于10%的数据,n,m≤5。

对于另外20%的数据,m<5。

对于另外20%的数据,n,m≤8。

对于另外20%的数据,n,m≤100。

对于100%的数据,n,m≤500。

B. 左右横跳

题目描述

Mys_C_K擅长左右横跳技术(雾)。

将世界抽象成一个一维数轴(大雾),其上有\(0,1,2,3,...,n\)\(n+1\)个点。一开始Mys_C_K在位置\(n\),要跳到位置\(0\),每次从\(x\)位置可以跳到\(\lbrace l_x, l_x+1,l_x+2,...,r_x\rbrace\)中的某个位置\(y\),这次跳跃所花的代价是\((x-y)(x-y-1)\)

然而左右横跳技术名不符实,因为Mys_C_K只能向左跳: 具体地,总是有\(r_x = x-1\)\(l_x \le l_{x+1}\)

求Mys_C_K左右横跳的最大代价

输入格式

第一行一个正整数\(n\)

第二行\(n\)个数,第\(i\)个数字表示\(l_i\)

输出格式

输出最大代价

样例输入

5
0 1 1 3 3

样例输出

4

更多样例下载

数据范围

对于\(30 \%\)的数据,\(n \le 1000\)

对于\(70 \%\)的数据,\(n \le 2 \times 10^5\)

对于\(100 \%\)的数据,\(n \le 5 \times 10^6\)

保证\(0 \le l_x \le r_x = x - 1\)

C. 简单题

题目描述

请求\(1^n\)。什么,这个问题太难了?我们来求一个简单的问题:

请求\(1^n(x)\)。这里的\(1\)是一个函数\(1(x) = 1\)对于任意\(x\)都成立。而对于两个函数的乘积有:
\[ (f * g) (x) = \sum_{d|x}f(d)f(\frac{x}{d}) \]
例如\(1^2(x) = \sum_{d|x}1(d)1(\frac{x}{d}) = \sum_{d|x} 1\),也就是说\(1^2(x)\)表示\(x\)的约数个数。什么你说这个问题虽然简单了一点但还是太难了?我们来求一个更简单的问题,请求:
\[ \sum_{i=L}^R 1^K(i) \]
什么,这个问题还是太难了?那我只能给你一道最简单的问题了,有\(q\)个询问,每次给定\(L_j, R_j, K_j\),请求:
\[ \sum_{i=L_j}^{R_j} 1^{K_j}(i) \]

补充说明:

\[ 1^K(x) = \sum_{d|x}1^{K-1}( \frac{x}{d})1(d) \]

\(1^K(x)\)表示把\(x\)分解为\(K\)个正整数的乘积,然后上述式子的意义就是枚举最后一个数字是\(d\),将\(\frac{x}{d}\)分解为\(K-1\)个数字的乘积。

那么把\(p^C\)分解为\(K\)个正整数的乘积就是把\(C\)分解为\(K\)个非负整数的和,根据插板法就是 \(\dbinom{C+K-1}{K-1}\)

输入格式

第一行三个正整数,\(\max R\)\(\max K\)\(q\)。这里\(R\)\(K\)不一定取到这个最大值。

接下来\(q\)行每行三个正整数\(L_j\)\(R_j\)\(K_j\)

输出格式

\(q\)行每行输出该询问的答案\(\mod 998244353\)

样例输入

10 10 3
1 10 1
5 7 2
1 10 10

样例输出

10
8
571

更多样例下载

数据范围

对于\(30 \%\)的数据,\(\max R, \max K, \max q \le 1000\)

对于\(50 \%\)的数据,\(maxR, maxK, q \le 1 \times 10^5\)

对于\(100 \%\)的数据,\(maxR, q \le 5 \times 10^5, \max K \le 10^9\)

对于\(50 \% \sim 100 \%\)的数据,数据有梯度。

题解详见这篇博客

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!