博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[洛谷P4838]P哥破解密码
阅读量:6230 次
发布时间:2019-06-21

本文共 1394 字,大约阅读时间需要 4 分钟。

题目大意:求长度为$n$的$01$串中,没有连续至少$3$个$1$的串的个数

题解:令$a_1$为结尾一个$1$的串个数,$a_2$为结尾两个$1$的串的个数,$b$为结尾是$0$的串的个数。$a_1=b,a_2=a_1,b=a_1+a_2+b$。

卡点:

 

C++ Code:

#include 
const int mod = 19260817;int Tim, n;inline void up(int &a, int b) {if ((a += b) >= mod) a -= mod;}struct matrix { #define M 3 int s[M][M]; inline matrix() { for (int i = 0; i < M; i++) { for (int j = 0; j < M; j++) s[i][j] = 0; } } inline void init() { for (int i = 0; i < M; i++) { for (int j = 0; j < M; j++) s[i][j] = 0; } s[0][1] = s[0][2] = 1; s[1][2] = 1; s[2][0] = s[2][2] = 1; } inline void init(int a) { for (int i = 0; i < M; i++) { for (int j = 0; j < M; j++) s[i][j] = 0; } s[0][2] = 1; } inline int getans() { int res = 0; for (int i = 0; i < M; i++) up(res, s[0][i]); return res; } inline friend matrix operator * (const matrix &lhs, const matrix &rhs) { matrix res; for (int i = 0; i < M; i++) { for (int j = 0; j < M; j++) { for (int k = 0; k < M; k++) { up(res.s[i][j], static_cast
(lhs.s[i][k]) * rhs.s[k][j] % mod); } } } return res; }} base, ans;int solve(int n) { base.init(); ans.init(1); for (; n; n >>= 1, base = base * base) if (n & 1) ans = ans * base; return ans.getans();}int main() { scanf("%d", &Tim); while (Tim --> 0) { scanf("%d", &n); printf("%d\n", solve(n)); } return 0; }

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/9881997.html

你可能感兴趣的文章
线上压缩代码-定位错误
查看>>
一个简洁且强大的状态管理库 - iFlow
查看>>
IP地址转换函数——inet_pton inet_ntop inet_aton inet_addr inet_ntoa
查看>>
设计模式笔记---4. 装饰模式
查看>>
springmvc + mybatis + ehcache + redis 分布式架构
查看>>
爬虫学习日记(四)分析Freenium
查看>>
nginx事件模块 -- 第五篇 epoll add
查看>>
共享栈基本操作
查看>>
Java 生成 PDF 文档
查看>>
深度学习:用生成对抗网络(GAN)来恢复高分辨率(高精度)图片 (附源码,模型与数据集)...
查看>>
缓存与数据库双写,不一致问题及解决方案
查看>>
Swift基础-部分关键字说明与示例
查看>>
【云服务月刊】2018年第1期:阿里云客户服务部总经理张颖杰:用心聆听,服务见智...
查看>>
99%的Java程序员都不知道的Spring中的@Transactional注解的坑
查看>>
堆排序 Heap Sort
查看>>
golang map 底层部分理解
查看>>
3.22(终)
查看>>
第61节:Java中的DOM和Javascript技术
查看>>
排名前十的程序员应用软件曝光,你有用过吗?
查看>>
关于android中监控u盘插入与拔出的困惑与思考
查看>>