列表

详情


NC207819. 填数游戏

描述

有长为n的连续格子,要在格子里面填上1-4这四个数字,要求同一个偶数出现的次数也是偶数次,问一共有多少种方案吗。

输入描述

,答案对1000000007取模

示例1

输入:

2

输出:

6

说明:

[1,1] [1,3] [2,2] [3,1] [3,3] [4,4]六种

原站题解

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

Go(1.14.4) 解法, 执行用时: 2ms, 内存消耗: 900K, 提交时间: 2020-08-14 00:18:10

package main

// github.com/EndlessCheng/codeforces-go
func GetNumberOfSchemes(n int) int {
	n--
	const mod int = 1e9 + 7
	pow := func(x, n int) (res int) {
		x %= mod
		res = 1
		for ; n > 0; n >>= 1 {
			if n&1 == 1 {
				res = res * x % mod
			}
			x = x * x % mod
		}
		return
	}
	return (pow(2, n) + pow(4, n)) % mod
}

C++11(clang++ 3.9) 解法, 执行用时: 2ms, 内存消耗: 380K, 提交时间: 2020-08-14 00:18:46

class Solution
{
	public:
		const int mod=1e9+7;
		long long fastpow(long long a,int b)
		{
			long long s=1;
			for(;b;b>>=1,a=a*a%mod)
			if(b&1)
			s=s*a%mod;
			return s;
		}
		int GetNumberOfSchemes(int n)
		{
			n--;
			return fastpow(2,n)*(fastpow(2,n)+1)%mod;
		}
};

Python3(3.5.2) 解法, 执行用时: 56ms, 内存消耗: 6544K, 提交时间: 2020-08-13 21:25:03

#
# 
# @param n int整型 
# @return int整型
#
class Solution:
    def GetNumberOfSchemes(self , n ):
        mod = 1000000007
        return (pow(2, n - 1, mod) + pow(4, n - 1, mod)) % mod

上一题