本文共 1086 字,大约阅读时间需要 3 分钟。
为了解决这个问题,我们需要计算 Mr.BG 在给定约束下形成的所有可能字符串中非回文字符串的数量。我们将使用数学方法来高效地解决这个问题。
MOD = 10**9 + 7def main(): import sys input = sys.stdin.read data = input().split() TC = int(data[0]) index = 1 for _ in range(TC): N = int(data[index]) M = int(data[index+1]) index += 2 if N == 0 or M == 0: print(0) continue total = pow(M, N, MOD) if N % 2 == 0: k = N // 2 else: k = (N + 1) // 2 palindrome = pow(M, k, MOD) res = (total - palindrome) % MOD print(res)if __name__ == "__main__": main()
sys.stdin.read
读取所有输入数据,处理多个测试用例。pow
函数计算 ( M^N \mod (10^9 + 7) )。该方法通过数学分析和快速幂算法,高效地解决了问题,确保了计算的正确性和性能。
转载地址:http://qqffk.baihongyu.com/