常用技巧 —— 打表&规律

【概述】

找规律是一种常见的题型,当给出相关数据后,我们往往可以利用打表的方法,得到大量的数据,然后再寻找规律。

简单来说,打表就是需要对某个范围内的数据进行判断,判断它是否符合某种条件,然后在接下来的很多次数据中,可能会反复使用到这些判断的结果,为了减少重复计算,可以事先将某个范围的数据的判断结果全都计算并保存起来,当需要再使用到的时候,直接使用即可。

打表实际上是一种思维方法,被广泛的应用于后续的各种算法中,例如:记忆化搜索、动态规划、素数表、斐波那契用数组递推代替函数递归等等。

【线性递推式】

求线性递推式系数是一种常见的找规律的题型,即对于一个暴力打出的表,其可能满足一个线性递推式。

那么我们可以设: F[n] = a*F[n-1] + b*F[n-2] + c*F[n-3] + d * F[n-4]  + ...

一般来说,只需要四重 for 循环,从负数开始暴力枚举 a、b、c、d,然后判断与自己所打的表是否相同

【例题】

1.简单打表

  1. 迎春舞会之数字舞蹈(洛谷-P1538)(打表+模拟)点击这里
  2. 生活大爆炸版石头剪刀布(洛谷-P1328)(打表+模拟)点击这里

2.规律

  1. 小b和灯泡(51Nod-2489):点击这里
  2. 0和5(51Nod-1433):点击这里
  3. Positive Negative Sign(LightOJ-1294):点击这里
  4. 处女座和小姐姐(2019牛客寒假算法基础集训营 Day3-E)(分类讨论)点击这里
  5. Sonya and Exhibition(CF-1004B)(分类讨论)点击这里
  6. Knights in Chessboard(LightOJ-1010)(分类讨论)点击这里
  7. Margarite and the best present(CF-1080B)(分类讨论)点击这里
  8. Ekka Dokka(LightOJ-1116)(分类讨论)点击这里

4.打表找规律

  1. 序列中最大的数(51Nod-1062):点击这里
  2. Seq(HDU-6672):点击这里
  3. Pyramid (Gym-101981G):点击这里
  4. permutation 2(HDU-6630):点击这里
  5. Roman Digits(CF-998D)(线性递推式):点击这里
  6. 求递推序列的第N项(51Nod-1126)(递推+打表)点击这里
  7. A Cubic number and A Cubic Number(HDU-6216)(数学推导+打表)点击这里
  8. Fibsieve`s Fantabulous Birthday(LightOJ-1008)(数学推导+打表)点击这里
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值