P4920 未来程序

upd:管理员不负责任!我这格式都挂了怎么还能过的(

由于 Forever_Pursuit 一直想让我写这题于是我就写了。

备注:#9#10 有参照题解。

每个子任务难度评价对照如下:

  • EZ:大众分,应该非常简单。
  • NM:差不多是大众分,比较简单。
  • HD:较难,可能比较难做。
  • SP:愚人节题目,不考察选手OI实力。

Program 1(EZ)#

龟速乘,直接用 __int128 就搞定了。

Program 2(NM)#

一个奇怪的循环,列出前几项可以发现一个规律。

n 次循环后,A=F(n)2,B=F(n1)F(n),C=F(n1)2

其中 F(n) 代表斐波那契数列,直接矩阵快速幂一波带走。

Program 3(EZ)#

小学奥数题。

i=0n1=n+1

i=0ni=n×(n+1)2

i=0ni2=n×(n+1)×(2n+1)6

i=0ni3=(i=0ni)2

i=0ni4=(i=0ni2)(3n2+3n+1)5

但是这里要注意分母的常数请直接放到分子的其中一个因数里,不然溢出后除的结果是不对的。

为什么不用 __int128 呢?因为 __int128 也爆炸了!

Program 9(SP)#

Q11984,不会的请重温笔试/初赛。

Q2123456,没什么好说的。

Q3chenlijie,摘掉眼镜或者看 vs code 的预览那边。

Q4:暴力枚举所有符号即可。

Q5Q8:注意到 Program 2 中有一份英语词典,我们可以一个一个代入尝试。

Q9:注意到字符串长度不超过 7,所以依旧选择暴力选择字典的两个单词去尝试,这里需要先筛掉长度超过 5 的字符,然后就跑的飞快了。

Q10:注意到 Program 10 中已经有这个句子了,我们可以在一个函数中直接得到答案。你也可以直接百度。

Program 7(HD)#

观察样例发现是完成 16×16 的数独,由于我是贺题怪所以我随便贺了一份代码,跑出来了,很快啊!

正解是舞蹈链,你可以在 SPOJ 的那个数独题里找到这个题的题解。

Program 10(SP)#

一开始的思路是直接转化函数,化递归为递推。

然后我把单个字母的函数推了一遍,其余保留原样,结果编译异常慢。

然后本来只跑一个数据点的,结果答案就全出来了,很快啊!

后来发现 O(fast) 直接帮你推完了,不讲武德!

Program 4(NM)#

  • Task 1:两个都是 1 且不相同的格子,对答案贡献为 1,求答案。
  • Solution:设为 1 的格子数量为 x,答案就是 x(x1)
  • Task 2:一个为 1 的格子对答案贡献为所有 0 和它的曼哈顿距离最小值,求答案。
  • Solution:显然这个格子一定在左上,右上,左下,右下四个方向里,可以直接 dp。

Program 5(NM)#

统计全为 1 的子矩形数量。

这个也是经典题目,统计以每一行为最后一行的和法矩形数量,使用单调栈计算答案即可。

Program 6(NM)#

学过 pollard-rho 的同学都知道这个东西最后会进入一个环,并且期望进入这个环的时间并不长

众所周知判环可以用 floyd 或者 brent,brent 快一点,floyd 慢一点,取决于你想用哪个。本机成功使用 floyd 判圈算法在 1 分钟左右的时间内得出答案.

Program 8(HD)#

我们大胆猜测答案是几个组合形式的数,那么答案一定是一个关于 n 的多项式,于是大力插值。

注意 1015 要对模数取模,不然插值的时候会爆 long long

posted @   dXqwq  阅读(160)  评论(1编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示
主题色彩