NC207819. 填数游戏
描述
输入描述
,答案对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