分析:直接暴力算有30分,像斐波那契那样推式子算有60分,如果想要得到100分就要用一种数列题的常见优化--矩阵了.

当前的兔子数和十年内的兔子数有关,我们需要1个1*11的矩阵,来记录当前为0岁、1岁、2岁......兔子的数量,同时还需要一个快速幂矩阵进行计算.由于一年后a[1] = a[0],a[2] = a[1],......,a[10] = a[9],a[0] = a[1] + a[2] + a[3] + ...... + a[10],很容易构造出矩阵来.

因为矩阵比较复杂,还是推荐用结构体来写.

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>using namespace std;const int mod = 1000000007;
int t;
long long print,sum;struct node
{int n, m;long long a[20][20];node(){memset(a, 0, sizeof(a));n = 0;m = 0;}
}s,p,ans;node mul(node a, node b)
{node c;c.n = a.n;c.m = b.m;for (int i = 0; i < a.n; i++)for (int j = 0; j < b.m; j++)for (int k = 0; k < a.m; k++){c.a[i][j] += (a.a[i][k] * b.a[k][j]) % mod;c.a[i][j] %= mod;}return c;
}node qpow(node a, int b)
{node t;t.n = 11;t.m = 11;for (int i = 0; i < 11; i++)t.a[i][i] = 1;while (b){if (b & 1)t = mul(t, a);a = mul(a, a);b >>= 1;}return t;
}int main()
{scanf("%d", &t);s.n = 1;s.m = 11;s.a[0][1] = 1;p.n = 11;p.m = 11;for (int i = 1; i <= 9; i++){p.a[i][0] = 1;p.a[i - 1][i] = 1;}p.a[10][0] = 1;ans = mul(s, qpow(p, t - 1));for (int i = 0; i <= 10; i++)sum = (sum + ans.a[0][i]) % mod;printf("%lld\n", sum);return 0;
}

转载于:https://www.cnblogs.com/zbtrs/p/7598991.html

noip模拟赛 蒜头君的兔子相关推荐

  1. NOI.AC NOIP模拟赛 第六场 游记

    NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...

  2. 【noip模拟赛4】Matrix67的派对 暴力dfs

    [noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...

  3. 【HHHOJ】NOIP模拟赛 捌 解题报告

    点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...

  4. jyzy noip模拟赛5.22-2

    不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...

  5. NOIP模拟赛csy2021/10/30

    NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...

  6. 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告

    [WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...

  7. NOIP 模拟赛 长寿花 题解

    NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...

  8. 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)

    [题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...

  9. NOIP模拟赛套路技巧经验总结

    前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...

最新文章

  1. Python求100以内的素数和并输出
  2. MySQL优化篇:索引
  3. R语言泊松回归(poisson)模型案例:基于robust包的Breslow癫痫数据集
  4. 使用Jupyter Notebook编写技术文档
  5. 这10个机器学习开源工具,你用过吗?
  6. [tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕)
  7. java textview多行_java-Android在textview中多个可点击的字符串
  8. SVR4/4.3BSD与Linux对待伪终端的不同方式
  9. 10周带你手推机器学习算法公式,30+视频为你讲解Sklearn库应用
  10. python3扫雷代码_python3 命令行 扫雷
  11. 智能优化算法应用:基于麻雀搜索算法与非完全beta函数的自适应图像增强算法 - 附代码
  12. C++模拟鼠标键盘操作(转)
  13. OpenCV 学习笔记-day14 图像几何形状绘制 (rect类 RotatedRect 类,rectangle绘制矩形 circle绘制圆形函数 line画线函数 ellipse画椭圆函数)
  14. 超越GraphCL,GNN+对比学习的节点分类新SOTA
  15. 运放稳定性连载14:RO何时转变为ZO?(3)
  16. 杰奇1.7用php53,杰奇1.7模板一库多站配置教程
  17. 高数-导数--隐函数求导
  18. 深度系统linux15.3 32位下载,Deepin 15.3 i386官方正式版(32位)
  19. c++语言基础教程第三版习题答案,《C++语言基础教程》吕凤翥习题答案
  20. pytest 之 fixture 夹具

热门文章

  1. 【NetApp】安装Cmode模拟器时,应使用带交换机的模式
  2. Firefox 修改User Agent
  3. 敏捷测试2015新看点
  4. 【分享】Maven插件的源码下载(SVN)
  5. 小机箱的评估,立人 vs Jobs机箱
  6. Java 11 快要来了,编译 运行一个命令搞定!
  7. Neutron Router 工作原理 - 每天5分钟玩转 OpenStack(142)
  8. asmack xmpp 获取离线消息
  9. ORACLE SEQUENCE 介绍
  10. OSPF如何选举DR/BDR规则