Codeforces 983 A-E

题解

A

难度:黄
算法标签:数学、进制
题目翻译:给定进制 b 和分数 pq,求这个分数在 b 进制下是否是有限小数。
题目分析:
首先将分数化简(不用说了)。接下来有命题:若 /frac1q 为有限小数,则 /fracpq 必然为有限小数。且逆命题、否命题成立。证明略。
不难看出,若 b 包含 q 中的所有质因数,则该分数为有限小数,否则为循环小数。但暴力分解质因数的复杂度为 O(n) 无法通过这道题。因此考虑优化。这里可以使用 q /= GCD(p, b) 代替。

B

难度:蓝
算法标签:动态规划
题目翻译:
在一个长度为 m 的数组 b 中定义函数 f

f(b)={b[1]if m=1f(b[1]b[2],b[2]b[3],,b[m1]b[m])otherwise,

例如:

f(1,2,4,8)=f(12,24,48)=f(3,6,12)=f(36,612)=f(5,10)=f(510)=f(15)=15

现在,有一个长度为 n 的序列 a,给了 q 组询问,请计算 al,al+1,,ar 的所有连续子序列 {b} 中,f(b) 的最大值为多少。

题目分析:O(n2) 预处理 f 每一层的值,然后递推,用 d[i][j] 表示以 i 为起点长度为 j 的最大值,然后 O(1) 查询。直接做就做完了。

C

难度:紫(未完)

posted @   cwkapn  阅读(50)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示