阿里巴巴协助征战SARS(困难)

  • 33.29%
  • 1000ms
  • 262144K
 

目前,SARS 病毒的研究在世界范围内进行,经科学家研究发现,该病毒及其变种的 DNA 的一条单链中,胞嘧啶、腺嘧啶均是成对出现的。这虽然是一个重大发现,但还不是该病毒的最主要特征,因为这个特征实在太弱了。

为了进一步搞清楚该病毒的特征,CN 疾病控制中心和阿里巴巴集团合作,用科技的力量和程序的思维来解决这个难题。现阿里巴巴特委派你成为 CN 疾病控制中心的 SARS 高级研究员,去研究在这个特征下,可能成为 SARS 病毒的 DNA 序列的个数。更精确地说,你需要统计所有满足下列条件的长度为 nn 的字符串的个数:

  1. 字符串仅由 A、T、C、G 组成
  2. A 出现偶数次(也可以不出现)
  3. C 出现偶数次(也可以不出现)

当 n=2n=2 时,所有满足条件的字符串有如下 66 个:

TT,TG,GT,GG,AA,CC。

注: 由于这个数可能非常庞大,你只需给出对 10^9 + 7109+7 取模的结果即可。

输入格式

输入文件给出了若干个 nn。最后以数字 00 结束。

输出格式

对于输入文件中的每一个 nn,输出满足条件的字符串的个数对 10^9 + 7109+7 取模的结果。

数据范围

n \le 10^{(10^5)}n≤10(105)

样例输入复制

  1. 1
  2. 2
  3. 3
  4. 100
  5. 0

样例输出复制

  1. 2
  2. 6
  3. 20
  4. 113046907
  5.  
  6. 先用dfs跑一遍找到规律:2^n+4^n
    然后就是大数取余的处理,字符串读入利用费马小定理+欧拉降幂。
    形式类似HDU - 4704 sum 大数取余+欧拉降幂
  7.  
  1. #include<bits/stdc++.h>
  2. #define MOD 1000000007
  3. using namespace std;
  4. typedef long long ll;
  5.  
  6. char s[];
  7.  
  8. ll qMod(ll a,ll b){
  9. ll ans=;
  10. a%=MOD;
  11. while(b){
  12. if(b&) ans=ans*a%MOD;
  13. b>>=;
  14. a=a*a%MOD;
  15. }
  16. return ans;
  17. }
  18. int main()
  19. {
  20. int n,len,i;
  21. while(scanf(" %s",s)&&s[]!=''){
  22. ll c=;
  23. len=strlen(s);
  24. for(i=;i<len;i++){
  25. int x=s[i]-'';
  26. c=c*+x;
  27. if(c>) c%=;
  28. }
  29. c=((c-)%+)%;
  30. printf("%lld\n",(qMod(,c)+qMod(,c))%MOD);
  31. }
  32. return ;
  33. }

2019计蒜之道初赛3 D. 阿里巴巴协助征战SARS(困难)(大数取余+欧拉降幂)的更多相关文章

  1. 2019计蒜之道初赛4 B. 腾讯益智小游戏—矩形面积交(简单)(矩形交集)

    B. 腾讯益智小游戏—矩形面积交(简单) 1000ms 262144K   腾讯游戏开发了一款全新的编程类益智小游戏,最新推出的一个小游戏题目是关于矩形面积交的.聪明的你能解出来吗?看下面的题目接招吧 ...

  2. 2019 计蒜之道 初赛 第一场 商汤的AI伴游小精灵

    https://nanti.jisuanke.com/t/39260 根据题意我们可以知道  这是一个树 我们只需要找到出度最大的两个点就好了 如果包含根节点的话要-- 两个点相邻的话也要-- 数据很 ...

  3. 2019 计蒜之道 初赛 第二场 B. 百度AI小课堂-上升子序列(简单) ( 实现)

    题目背景 ​91029102 年 99 月 22 日,百度在 X 市 XX 中学举办的第一场 AI 知识小课堂大获好评!同学们对矩阵的掌握非常棒. 今天的 AI 知识小课堂的第二场开讲啦.本场 AI ...

  4. 2019 计蒜之道 初赛 第二场 A 百度AI小课堂-矩阵问题 ( 等差数列求和公式)

    题目背景 ​91029102 年 99 月 11 日,百度在 X 市 XX 中学举办了一场 AI 知识小课堂,本场 AI 知识小课堂老师教授了一些矩阵的相关知识,因为矩阵在 AI 人工智能中也有相当的 ...

  5. 2019 计蒜之道 初赛 第一场 商汤AI园区的n个路口(中等) (树形dp)

    北京市商汤科技开发有限公司建立了新的 AI 人工智能产业园,这个产业园区里有 nn 个路口,由 n - 1n−1 条道路连通.第 ii 条道路连接路口 u_iui​ 和 v_ivi​. 每个路口都布有 ...

  6. 2019计蒜之道初赛第3场-阿里巴巴协助征战SARS 费马小定理降幂

    题目链接:https://nanti.jisuanke.com/t/38352 发现规律之后就是算ans=2^(n-1)+4^(n-1).但是注意到n十分大是一个长度为1e5的数字.要想办法降幂. 我 ...

  7. 计蒜之道 初赛第一场B 阿里天池的新任务(简单)

    阿里“天池”竞赛平台近日推出了一个新的挑战任务:对于给定的一串 DNA 碱基序列 tt,判断它在另一个根据规则生成的 DNA 碱基序列 ss 中出现了多少次. 首先,定义一个序列 ww: \displ ...

  8. 2017 计蒜之道 初赛 第五场 D. UCloud 的安全秘钥(困难)

    小数据打表,大数据暴力. 导致超时的主要原因是$m$小的询问次数太多,可以把$m≤10$的答案直接暴力打表存起来,$m>10$的用$C$题的方法即可. #include <iostream ...

  9. 2017 计蒜之道 初赛 第五场 C. UCloud 的安全秘钥(中等)

    暴力. $O(m*n)$的算法可以通过此题,每次询问$O(m)$扫$S$数组,统计不同数字的个数,每次移动最多只会变化两个数字,如果不同数字个数为$0$,那么答案加$1$. #include < ...

随机推荐

  1. 使用 Django1.11搭建blog项目

    使用Django搭建blog项目 简单设置: http://blog.csdn.net/w_e_i_/article/details/70761604 模板渲染: http://blog.csdn.n ...

  2. HTML5画布(基础篇11-10)

    <script type="text/javascript"> $(function(){ var s = $("#myCanvas")[0]; v ...

  3. php函数: set_error_handler

    <?php // $errno, $errstr, $errfile, $errline , 系统自动生成这四个变量的值(如果存在!) function error_catcher($errno ...

  4. Java for LeetCode 096 Unique Binary Search Trees

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  5. Spring Boot2.0之整合log4j

    传统方式打印日志比较复杂, 每次打印需要定义全局变量 private static final Logger logger = LoggerFactory.getLogger(SjpControlle ...

  6. java Regex匹配及解析文本

    用一个main程序展示下 public static void main(String[] args){       String text = "SSM<br>LOC<b ...

  7. Contiki Process概述

    本文涉及到的Protothread机制知识,在http://www.cnblogs.com/songdechiu/p/5793717.html 一.进程类型 进程类型主要有协同式(cooperativ ...

  8. ios图片瀑布流代码

    ios瀑布流,实现简单的瀑布流视图布局,可以显示网络图片,下拉刷新,上拉加载更多. 下载:http://www.huiyi8.com/sc/9087.html

  9. JavaScript中函数的无限次运算问题

    开博客有一段时间了,一直没动笔,原因是确实没看到什么值得写的内容.直到今天在司徒正美的博客里看到一个问题. http://www.cnblogs.com/rubylouvre/archive/2012 ...

  10. Nginx HTTP Server相关

    一.Nginx安装: 采取手动编译安装 对多种重要的选项进行配置 安装前提:常用工具和库,GCC PCRE(Rewrite模块需要) pcre-devel(源码) zlib zlib-devel(源码 ...