吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂)
时间:2019-08-16
本文章向大家介绍吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂),主要包括吉首大学2019年程序设计竞赛(重现赛)- A SARS病毒 (矩阵,欧拉降幂)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目链接:https://ac.nowcoder.com/acm/contest/992/A
题意:求出长度为n的字符串个数,字符串由A、C、G、T组成,其中A和C必须成对出现。
思路:我们规定: f[n][0]--长度为n的合法字符串个数
f[n][1]--长度为n的A为奇数个的字符串个数
f[n][2]--长度为n的C为奇数个的字符串个数
f[n][3]--长度为n的A、C均为奇数个的字符串个数
那么有如下转移方程:
根据转移方程构建矩阵:
就可以通过矩阵快速幂求得了,n太大了,继续思考:
然后齐次线性递推得到:f[n][0]=4n-1+2n-1,之后欧拉降幂即可。
AC代码:
#include<cstdio> #include<algorithm> #include<cstring> using namespace std; typedef long long LL; const int MOD=1e9+7; const int MOD1=1e9+6; char s[100005]; LL qpow(LL a,LL b){ LL ret=1; while(b){ if(b&1) ret=ret*a%MOD; a=a*a%MOD; b>>=1; } return ret; } int main(){ while(~scanf("%s",s)){ LL tmp=0; for(int i=0;i<strlen(s);++i) tmp=(tmp*10+s[i]-'0')%MOD1; if(tmp>0) --tmp; else tmp=MOD1-1; tmp=qpow(2,tmp); printf("%lld\n",tmp*(tmp+1)%MOD); } return 0; }
原文地址:https://www.cnblogs.com/FrankChen831X/p/11365107.html
- 这次真的忽略了一些ActiveMQ内心的娇艳
- 多线程编程:阻塞、并发队列的使用总结
- 多线程编程:多线程并发制单的开发记录【一】
- 如何使用线程锁来提高多线程并发效率
- 如何在分布式环境中同步solr索引库和缓存信息
- 如何在分布式环境中同步solr索引库和缓存信息
- Info模式下的隐形杀手(SpringMVC同时使用<mvc:resources.../>和FormattingConversionServiceFactoryBean时出现的问题)
- 关于web.xml3.0启动报错
- [机器学习]-[数据预处理]-中心化 缩放 KNN(一)
- 信息安全不可或缺应用交付 还需安全交付
- 一张图带你看懂区块链项目生态
- python环境的安装
- python爬虫抓取网易云音乐歌词
- 区块链学堂——“遇见”拜占庭将军
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法