Description

Solution

这其实是很水的一道题。
你可以找规律,也可以推公式。
我们设前缀和为g[i],那么很明显g[i]=g[i-1]+F[i-1]。
那么现在很明显只要能递推F就好了。
我们看一下F,F[i]=F[i−1]+(F[i]−F[i−1])F[i]=F[i-1]+(F[i]-F[i-1])。
用f去代替后面的式子:∑ij=0fjfi−j−∑i−1j=0fjfi−j−1=∑i−1j=0fj(fi−j−fi−j−1)+fi∗f0=F[i−2]+fi\sum_{j=0}^if_jf_{i-j}-\sum_{j=0}^{i-1}f_jf_{i-j-1}=\sum_{j=0}^{i-1}f_j(f_{i-j}-f_{i-j-1})+f_i*f_0=F[i-2]+f_i
所以F[i]=F[i−2]+F[i−1]+fiF[i]=F[i-2]+F[i-1]+f_i
所以直接矩阵乘法一下就好了。

Code

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
const int mo=998244353;
typedef long long ll;
ll i,j,k,l,t,n,m,ans;
struct ju{ll a[5][5];ju friend operator *(ju a,ju b){ju c;memset(c.a,0,sizeof(c.a));int i,j,k;fo(i,0,4){fo(j,0,4){fo(k,0,4){c.a[i][j]=(c.a[i][j]+a.a[i][k]*b.a[k][j]%mo)%mo;}}}return c;}
}a,b;
ju qsm(ju x,ll y){ju z;memset(z.a,0,sizeof(z.a));fo(i,0,4)z.a[i][i]=1;while(y){if(y&1)z=z*x;x=x*x;y/=2;}return z;
}
int main(){scanf("%lld",&n);a.a[0][1]=a.a[0][4]=1;a.a[1][0]=a.a[1][1]=a.a[1][4]=1;a.a[2][1]=a.a[2][3]=a.a[2][4]=1;a.a[3][1]=a.a[3][2]=a.a[3][3]=a.a[3][4]=1;a.a[4][4]=1;b.a[0][0]=1,b.a[0][1]=2,b.a[0][2]=b.a[0][3]=1,b.a[0][4]=3;if(!n){printf("1\n");return 0;}else{b=b*qsm(a,n-1);printf("%lld\n",b.a[0][4]);}
}

【NOIP模拟】天使的分裂相关推荐

  1. JZOJ 4798 【NOIP2016提高A组模拟9.24】天使的分裂

    天使的分裂 题目大意 同时满足 求 ∑ni=1Fi \sum_{i=1}^{n}F_i 数据范围 题解 题目很简单,但是看上去很难. 先将F的递推式推出来. 所以递推式为 Fn F_n= Fn−1 F ...

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

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

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

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

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

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

  5. 闵梓轩大佬のnoip模拟题D1 总结 2017/10/26

    背景 题目概括 T1 题面 分析 90分算法 满分算法 T2 题面 分析 部分分算法 满分算法 满分代码 T3 题面 分析 代码 总结 背景 这道题目是去年的金牌大佬闵梓轩在一年前出的一套noip模拟 ...

  6. jyzy noip模拟赛5.22-2

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

  7. NOIP模拟赛csy2021/10/30

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

  8. NOIP模拟(10.22)T2 杆子的排列

    杆子的排列 题目背景: 10.22 NOIP模拟作业T2 分析:DP 定义状态dp[i][j][k]表示,目前枚举到第i大的数(即n - i + 1)那么显然如果这一个数放在左边,可以在左边被看到,放 ...

  9. Noip 模拟练习5

    Noip 模拟练习5 满分300,本人240.修正后300. 难度中等. 太空密码 Description 人类一直致力于探索地外文明,为此科学家们建造了一个巨大的射电望远镜 用于接收宇宙射线.一天从 ...

  10. NOIP模拟赛 四校联考 递推 + 分类讨论 + 树上期望

    NOIP 模拟题 题目名称兔子被子蚊子 源程序文件名rabbit.cpp quilt.cpp mosquito.cpp 输入文件名rabbit.in quilt.in mosquito.in 输出文件 ...

最新文章

  1. python02-条件语句到循环语句
  2. 双机热备软件,Legato AAM,双机容错,集群软件,磁盘阵列
  3. 天津将规划新增津雄城际铁路 建15分钟京津冀生活圈
  4. Lodop导出图片和打印机无关,测试是否有关
  5. Android 网络编程系列(3)WebView 详解
  6. 秒懂云通信:选云通信到底哪家强?
  7. MFC通过ODBC连接mysql(使用VS2012编写MFC)
  8. 解决VS命令提示符 “Setting environment for using Microsoft Visual Studio. 此时不应有“系列错误
  9. 每天进步一点点《ML - 正则化代价函数》
  10. TensorFlow第七步再试牛刀-自编BP代码解Mnist
  11. mysql innodb禁用事务_MySQL InnoDB事务中锁问题(三)
  12. RN react-native-wechar 微信支付、分享
  13. Python pip卸载包
  14. Golang Time互转秒、毫秒
  15. 罗马数字数字1到10对照表
  16. java manager层_在阿里Java大牛们都是这样对Java项目代码分层的
  17. 苹果电脑App Store下载失败
  18. 游戏制作中的大宝剑---常用的数据结构与算法
  19. Linux公社 学习连接
  20. 今天开始学JAVA了!

热门文章

  1. 虚数和复数更好的理解
  2. AfterNodeInsertion方法
  3. 十分钟掌握多项式回归:拟合非线性关系
  4. HTML---bootstrap在线引用地址
  5. java--实现简单斗地主
  6. 贪心算法——1225:金银岛
  7. 淘宝天猫运营,淘宝客推广,店铺流量提升
  8. Go实现简易聊天室(群聊)
  9. 【MySQL】DDL(Data Definition Language)数据定义语言之操作数据库
  10. GBase 8s 导入导出工具 unload/load