q1016 tyvj 兔子繁殖

本文分享了一道ACM竞赛题目的解题思路与过程,包括初始错误的原因分析及最终正确的算法实现。采用O(12n)的时间复杂度解决,并通过使用12*12的矩阵进一步优化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这道题wa了好多次才过,

一开始是因为题目描述被坑了...

后来是ans忘记mod了= - =

果然太sb了!


没什么好说的 o(12n)的都知道。用一个变量就变成o(n)的了 再用一个12*12D的矩阵就可以更快了。

当然没必要= - =


code

var
  ans,s:int64;
  i,n:longint;
  f:array[-15..100005] of int64;
begin
  ans:=0;
  read(n);
  f[1]:=1;
  s:=0;
  for i:=2 to n do
    begin
      s:=(s+f[i-2]) mod 100000007;
      f[i]:=s;
      s:=(s-f[i-12]) mod 100000007;
      if s<0 then s:=s+100000007;
    end;
  for i:=n downto n-11 do
    ans:=(ans+f[i]) mod 100000007;
  writeln(ans);
end.

最近都偷懒没有把ac的题目发上来,弄一个最近刷水记录好了。。
NOIP rp+++!!!!!
大家要多支持tyvj!www.tyvj.cn!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值