列表

详情


NC50035. SARS病毒

描述

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

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

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

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

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

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

输入描述

多组输入(不超过10组),每行一个整数n:0 < n < 

输出描述

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

示例1

输入:

1
2
100

输出:

2
6
113046907

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

pypy3 解法, 执行用时: 566ms, 内存消耗: 32332K, 提交时间: 2023-04-24 20:48:38

while True:
    try:
        mod=1000000007
        n=int(input())
        print((pow(2,n-1,mod)+(pow(4,n-1,mod)))%mod)
    except:
        break

Python3(3.5.2) 解法, 执行用时: 1422ms, 内存消耗: 4708K, 提交时间: 2019-07-15 17:13:08

try:
	m=1000000007
	while True:
		n=int(input())
		a=pow(2,n-1,m)
		print((a+a*a)%m)
except EOFError:
	pass

上一题