【NOIP2016提高A组模拟9.24】天使的分裂
题目
分析
这题可以递推,
但是\(O(n)\)还是会超时,
就用矩阵快速幂。
#include <cmath>
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <algorithm>
#include <queue>
const long long maxlongint=2147483647;
const long long N=500005;
using namespace std;
long long m=998244353,n;
long long g[5][5]=
{
{0,1,0,0,1},
{1,1,0,0,1},
{0,1,0,1,1},
{0,1,1,1,1},
{0,0,0,0,1}
};
long long f[5]={1,2,1,1,3};
long long time()
{
long long f1[16];
for(int i=0;i<=4;i++)
f1[i]=f[i];
for(int i=0;i<=4;i++)
{
f[i]=0;
for(int j=0;j<=4;j++)
f[i]=(f[i]+f1[j]*g[j][i]%m)%m;
}
}
long long time1()
{
long long f1[16][16];
for(int i=0;i<=4;i++)
for(int j=0;j<=4;j++)
f1[i][j]=g[i][j];
for(int i=0;i<=4;i++)
for(int j=0;j<=4;j++)
{
g[i][j]=0;
for(int k=0;k<=4;k++)
{
g[i][j]=(g[i][j]+f1[i][k]*f1[k][j]%m)%m;
}
}
}
long long mi(long long x)
{
while(x)
{
if(x&1) time();
time1();
x/=2;
}
}
int main()
{
scanf("%lld",&n);
if(n==0)
{
cout<<1<<endl;
return 0;
}
mi(n-1);
cout<<f[4]<<endl;
}
【NOIP2016提高A组模拟9.24】天使的分裂的更多相关文章
- 【NOIP2016提高A组模拟9.24】总结
第一题纯模拟,结果那个出题人脑子似乎进水了,空间限制开了1G!!! 导致我捉摸了半天为什么空间要开那么大,最后只能得出上面的结论. 第二题是个矩阵快速幂,比赛上我没把递推式求出来,但是根据各种乱搞,得 ...
- 【NOIP2016提高A组模拟9.24】我的快乐时代
题目 分析 虽然我们很难求出\(\sum_{i=n}^mjoy(i)\), 但是我们可以分别求出\(\sum_{i=1}^mjoy(i)\)和\(\sum_{i=1}^{n-1}joy(i)\),相减 ...
- 【JZOJ4799】【NOIP2016提高A组模拟9.24】我的快乐时代
题目描述 输入 一行,两个整数l,r . 输出 一行,一个整数,表示第l 天到第r 天的愉悦值的和. 样例输入 64 89 样例输出 1818 数据范围 解法 可以参考数位动态规划的想法. 从个位开始 ...
- JZOJ 4732. 【NOIP2016提高A组模拟8.23】函数
4732. [NOIP2016提高A组模拟8.23]函数 (Standard IO) Time Limits: 1500 ms Memory Limits: 262144 KB Detailed ...
- 【NOIP2016提高A组模拟9.14】数列编辑器
题目 分析 比赛上,没有注意到询问只询问光标前面,于是只打了个暴力. 因为询问只询问光标前面,首先,当光标向后每移动到一个位置,顺便将这个位置的前缀和,和最大前缀和求出来. 总之,模拟 #includ ...
- 【JZOJ4746】【NOIP2016提高A组模拟9.3】树塔狂想曲
题目描述 相信大家都在长训班学过树塔问题,题目很简单求最大化一个三角形数塔从上往下走的路径和.走的规则是:(i,j)号点只能走向(i+1,j)或者(i+1,j+1).如下图是一个数塔,映射到该数塔上行 ...
- 【JZOJ4745】【NOIP2016提高A组模拟9.3】看电影
题目描述 听说NOIP2016大家都考得不错,于是CCF奖励省常中了 K 张变形金刚5的电影票奖励OI队的同学去看电影.可是省常中OI队的同学们共有 N(N >= K)人.于是机智的你想到了一个 ...
- 【JZOJ4803】【NOIP2016提高A组模拟9.28】求导
题目描述 输入 输出 样例输入 2x^2+3x+1 样例输出 4x+3 数据范围 样例解释 求导的意思: 多项式是由若干个单项式构成的 单项式的一般形式是ax^b,其中ab都是常数,x是自变量 对于单 ...
- 【JZOJ4787】【NOIP2016提高A组模拟9.17】数格子
题目描述 输入 输出 样例输入 1 10000 3 10000 5 10000 0 0 样例输出 1 11 95 数据范围 每个测试点数据组数不超过10组 解法 状态压缩动态规划. 设f[i][j]表 ...
随机推荐
- Fidder插件自动生成爬虫代码(C#)
原创,效果如下: 1.新建项目,并添加Fidder.exe的引用: 2.添加代码 [assembly: Fiddler.RequiredVersion("2.2.8.6")]usi ...
- DHCP迁移
情况1:windows 2003迁移到windows 2003或者windows 2008,按照需要以下几个步骤:1.在源DHCP服务器导出DHCP数据文件,执行以下命令netsh dhcp serv ...
- 奥比中光Astra Pro在ROS系统中的使用
奥比中光Astra Pro在ROS系统中的使用 上一次介绍了Astra Pro在ubuntu中的使用,由于Astra Pro使用uvc传输彩色图像,所以当用rqt_image_view窗口 时,看不到 ...
- C#后台正则表达式
static Regex RegPhone = new Regex(@"^((1[34578][0-9]{1}))\d{8}"); static Regex RegN ...
- AspNet Core Swagger4.0 生成请求model描述
今天给大家分享 swagger 俩个冷门的小技巧 获取控制器描述 将 IncludeXmlComments 方法第二个参数设置为 true 即可 public static void IncludeX ...
- 3、APK file does not exist on disk
参考:https://blog.csdn.net/ouyang_peng/article/details/51243441 亲测可以解决
- Oracle 单实例安装篇
linux中启动网卡报错:Error: Connection activation failed: Connection 'eth0' is not available on the device e ...
- 写 JSP 的痛点,真的非常痛!
一.前戏 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构.弹性计算架构.微服 ...
- WebService概念解释
一句话概括什么是WebService WebService是一种跨编程语言.跨操作系统平台的远程调用技术. 远程调用技术:远程调用是指一台设备上的程序A可以调用另一台设备上的方法B.比如:银联提供 ...
- HNUSTOJ-1543 字符串的运算再现
1543: 字符串的运算再现 时间限制: 1 Sec 内存限制: 128 MB提交: 34 解决: 7[提交][状态][讨论版] 题目描述 我们对字符串 S 做了以下定义:1. S ^ k表示由k ...