第八届“图灵杯”NEUQ-ACM程序设计竞赛 - 数羊

题目描述
憨憨小杨晚上睡不着觉,就开始数羊,她觉得一只一只数太慢了,突发奇想出了一种新的数羊方式,羊羊数量A(n,m)由两个整形变量n和m决定,计算方式如下:

现在给出n和m的值,请你帮小杨数数一共有多少只羊。

输入描述:
多组输入。

第一行包含一个整数T(1≤T≤1000),表示有T组测试数据。

每组测试数据包含一行,包含两个整数n(1≤n≤10^9)和m(0≤m≤2).

输出描述:
对每一组输入,在一行中输出A(n,m)的值,由于输出的结果可能会很大,答案对998244353取模

第八届“图灵杯”NEUQ-ACM程序设计竞赛 - 数羊_第1张图片
思路:
直接迭代会爆
先写一个找出规律

def A(n,m):
    if n==1 and m==0:
        return 2
    elif n==0 and m>=0:
        return 1
    elif n>=2 and m==0:
        return n+2        
    elif m == 1:
            return (2 * n)%998244353
    elif m == 2:
            return (2 ** n)%998244353
t=int(input())
for _ in range(t):
    n,m=map(int,input().split())
    print(A(n,m))

你可能感兴趣的:(第八届“图灵杯”NEUQ-ACM程序设计竞赛 - 数羊)