蓝桥19865 线性规划
太久没碰这种数学了,写的比较笨
数列前k项≤ 2N的情况进行线性规划,约束条件有 a + (k-1)d ≤ 2n, a + kd >2n,前k项求和 >2n 在k ≥ 3时,约束条件2包含约束条件3,
a + (k-1)d ≤ 2n, a + kd >2n,在[3,inf)上区域求和,就是 a + 2d ≤ 2n
k = 1,2为特殊情况, k = 1时无法满足, k = 2时约束条件是 a + d ≤ 2n,a + 2d > 2n,2a+d>2n
最终约束区域即是 a + d ≤ 2n 除去 a + 2d > 2n, 2a + d ≤ 2n 关于这个被除去的部分里有多少点,用积分的思想去做, 2n - a / 2 < d ≤ 2n - 2a 在[0, 2n/3)上积分
a每增大1,d可取的范围 -1 -2交替,用两个等差数列求和计算
点击查看代码
mod = 998244353
for _ in range(int(input())):
n = int(input())
total = (2 * n) * (2 * n - 1) // 2
except_ = 0
if n % 3 == 0:
except_ = (n + 1) * n // 3 // 2 + (n - 3) * n // 3 // 2
if n % 3 == 1:
except_ = (n - 2) * (n - 1) // 3 // 2 + (n + 2) * (n - 1) // 3 // 2
if n % 3 == 2:
except_ = (n - 1) * (n - 2) // 3 // 2 + n * (n + 1) // 3 // 2
print((total - except_) % mod)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架