noip模拟赛 蒜头君的兔子
分析:直接暴力算有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模拟赛 蒜头君的兔子相关推荐
- NOI.AC NOIP模拟赛 第六场 游记
NOI.AC NOIP模拟赛 第六场 游记 queen 题目大意: 在一个\(n\times n(n\le10^5)\)的棋盘上,放有\(m(m\le10^5)\)个皇后,其中每一个皇后都可以向上.下 ...
- 【noip模拟赛4】Matrix67的派对 暴力dfs
[noip模拟赛4]Matrix67的派对 描述 Matrix67发现身高接近的人似乎更合得来.Matrix67举办的派对共有N(1<=N<=10)个人参加,Matrix67需要把他们安排 ...
- 【HHHOJ】NOIP模拟赛 捌 解题报告
点此进入比赛 得分: \(30+30+70=130\)(弱爆了) 排名: \(Rank\ 22\) \(Rating\):\(-31\) \(T1\):[HHHOJ260]「NOIP模拟赛 捌」Dig ...
- jyzy noip模拟赛5.22-2
不知道哪来的题 jyzy noip模拟赛5.22-2 样例输入 1 2 3 4 样例输出 0.200000000000000 数据 |a|,|b|,|c|,|d|<=1e9 很多大佬迅速想到二分 ...
- NOIP模拟赛csy2021/10/30
NOIP模拟赛csy2021/10/30 比赛时间规划 赛后反思与总结 这..总的来说感觉打的很不好,根本没有状态,有一部分原因是今天来晚了,太慌,更多的还是这次题感觉很难o(╥﹏╥)o 比赛时间规划 ...
- 【WZOI第二次NOIP模拟赛Day1T2】世界末日 解题报告
[WZOI第二次NOIP模拟赛Day1T2]世界末日 Problem 2 世界末日 (doomsday.pas/c/cpp) 背景 话说CWQ大牛终于打开了那扇神秘大门,但迎接他的不是什么神秘的东西, ...
- NOIP 模拟赛 长寿花 题解
NOIP 模拟赛 长寿花 题解 要放 \(n\) 层物品,第 \(i\) 层有 \(a_i\) 个位置放物品,物品有 \(m\) 中颜色,有约束条件: 同一层两个相邻物品颜色不能相同. 相邻两层颜色集 ...
- 辣鸡(ljh) NOIP模拟赛 模拟 平面几何 数论 化学相关(雾)
[题目描述] 辣鸡ljhNOI之后就退役了,然后就滚去学文化课了. 然而在上化学课的时候,数学和化学都不好的ljh却被一道简单题难住了,受到了大佬的嘲笑. 题目描述是这样的:在一个二维平面上有一层水分 ...
- NOIP模拟赛套路技巧经验总结
前言 还有2天就NOIP了,之前做了这么多场模拟赛,是时候拿出来总结一下, 算是给自己一针强心剂. 列表 从最近的考试总结起(个人认为的重点,可能有重复,仅供参考): (转化很重要,一定要简化问题过后 ...
最新文章
- Python求100以内的素数和并输出
- MySQL优化篇:索引
- R语言泊松回归(poisson)模型案例:基于robust包的Breslow癫痫数据集
- 使用Jupyter Notebook编写技术文档
- 这10个机器学习开源工具,你用过吗?
- [tool] AI视频翻译 解决英文视频字幕问题(类似youtube自动生成字幕)
- java textview多行_java-Android在textview中多个可点击的字符串
- SVR4/4.3BSD与Linux对待伪终端的不同方式
- 10周带你手推机器学习算法公式,30+视频为你讲解Sklearn库应用
- python3扫雷代码_python3 命令行 扫雷
- 智能优化算法应用:基于麻雀搜索算法与非完全beta函数的自适应图像增强算法 - 附代码
- C++模拟鼠标键盘操作(转)
- OpenCV 学习笔记-day14 图像几何形状绘制 (rect类 RotatedRect 类,rectangle绘制矩形 circle绘制圆形函数 line画线函数 ellipse画椭圆函数)
- 超越GraphCL,GNN+对比学习的节点分类新SOTA
- 运放稳定性连载14:RO何时转变为ZO?(3)
- 杰奇1.7用php53,杰奇1.7模板一库多站配置教程
- 高数-导数--隐函数求导
- 深度系统linux15.3 32位下载,Deepin 15.3 i386官方正式版(32位)
- c++语言基础教程第三版习题答案,《C++语言基础教程》吕凤翥习题答案
- pytest 之 fixture 夹具