题目链接: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+;
const int MOD1=1e9+; char s[]; LL qpow(LL a,LL b){
LL ret=;
while(b){
if(b&) ret=ret*a%MOD;
a=a*a%MOD;
b>>=;
}
return ret;
} int main(){
while(~scanf("%s",s)){
LL tmp=;
for(int i=;i<strlen(s);++i)
tmp=(tmp*+s[i]-'')%MOD1;
if(tmp>) --tmp;
else tmp=MOD1-;
tmp=qpow(,tmp);
printf("%lld\n",tmp*(tmp+)%MOD);
}
return ;
}

最新文章

  1. 高清VGA编码器|上海视涛科技
  2. linux 启动weblogic的某服务报错
  3. 烂泥:KVM虚拟机克隆
  4. work_queue 函数调用栈
  5. C++学习27 用全局函数重载运算符
  6. hdu 1305 Immediate Decodability
  7. [App]Taste VS2015 &amp;&amp; Android Studio
  8. 一个超级简单php的留言板
  9. WCF学习——构建一个简单的WCF应用(一)
  10. Spring Boot 2.x (十二):Swagger2的正确玩儿法
  11. spring security运行流程图(转)
  12. scala-02-数组的操作
  13. httpd 不带反斜杠 出现 301重定向
  14. 【Linux】awk详细介绍
  15. django用包来组织模型
  16. 【maven】Maven根据Profile读取不同配置环境配置文件
  17. BASIC-9_蓝桥杯_特殊回文数
  18. xiaocong/uiautomator
  19. 结对项目作业报告——四则运算web项目
  20. android驱动学习---led实验

热门文章

  1. luogu2634
  2. Django Admin中增加导出CSV功能
  3. 【Docker】docker 的常用命令&amp;操作
  4. Flutter制作Toast会自己关闭的消息提示框
  5. Video Captioning 综述
  6. 上有传参下传json的接口调用
  7. 小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-5.HttpClient4.x工具获取使用
  8. spark简单快速学习及打开UI界面---1
  9. 在SuSE安装wifidog认证服务器和网关
  10. innodb 隔离等级