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

这篇文章介绍了一种新颖的数羊方法A(n,m),通过编程实现,解决关于两个整数n和m决定的羊的数量问题。涉及算法思路、代码实现以及对998244353取模技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目描述
憨憨小杨晚上睡不着觉,就开始数羊,她觉得一只一只数太慢了,突发奇想出了一种新的数羊方式,羊羊数量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取模

在这里插入图片描述
思路:
直接迭代会爆
先写一个找出规律

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))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值