1 条题解

  • 0
    @ 2025-4-12 22:06:17

    C++ :

    #include<cstdio>
    #include<cstring>
    #include<cmath>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    const long long mod=(long long )(1e9+7);
    int n,k;
    
    long long power(long long a,long long p)
    {
        long long res=1;
        while(p)
        {
            if(p&1)
                res=(a*res)%mod;
                a=(a*a)%mod;
                p>>=1;
        }
        return res;
    }
    long long solve(long long x)
    {
        long long res;
        if(x==1) return 1;
        if(x==2) return 2;
        if(x==3) return 5;
        res=(power(2,x-1)%mod+((x-2)*power(2,x-3)%mod))%mod;
        return res;
    }
    int main()
    {
        //freopen("input.txt","r",stdin);
        //freopen("output.txt","w",stdout);
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d%d",&n,&k);
    
            if(k>n)
            {
                printf("0\n");
                continue;
            }
            int x=n;
            x-=(k-1);
            printf("%lld\n",solve(x));
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    2826
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者