gym101498

探讨了在无限完全二叉树中,寻找路径长度为a且变化次数为b的所有可能路径数量的方法。通过组合数公式及逆元预处理来解决大范围数据问题。

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

题意: 

一颗无限完全二叉树, 每条边的长度都是一, 求路径长为a,   变化(从左儿子走到右儿子)b次的方案数。  

(T <= 1e5 ,  b < a <= 1e5  ) 答案% 1e9 + 7

思路 : 组合数公式  2 * C( a-1, b) 但数据较多lucas 肯定不行 (  sqrt (mod) * T 爆炸复杂度)

             但 a, b 都不是很大, 所以考虑逆元 (需要预处理阶乘即可) 

对比 : codeforces869C  只有一组数据, 但需要求和, 所以采用 组合数公式性质 (暴力n^2预处理)

#include <bits/stdc++.h>
#define ll long long
using namespace std;

const int maxn = 1e5 + 10;
const ll  mod = 1e9 + 7;

ll fac[maxn];
ll a ,b;

ll quick(ll a, ll b)
{
    ll ans = 1;
    while(b)
    {
        if(b&1) ans = ans*a%mod;
        a = a* a%mod;
        b >>= 1;
    }
    return ans;
}

ll C(ll n, ll m)
{
    return fac[n] * quick(fac[m], mod-2)% mod* quick(fac[n-m],mod-2)%mod;
}

int main()
{
    fac[0] = 1;
    for(int i = 1; i <= 1e5; i++)
        fac[i] = fac[i-1] * i % mod;
    int t;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%I64d%I64d", &a ,&b);
         printf("%I64d\n", 2*C(a-1 , b)%mod);
    }
    return 0;
}


关于"gym"这个关键词,存在多种含义。以下是几个可能的方向及其相关信息: 1. Gymnasium (体育馆/健身房) Gym通常指的是一个用于体育锻炼或者竞技运动的地方。这里人们可以使用各种健身器材进行力量训练、心肺功能训练等。此外,gym也指学校中的体育馆,学生可以在那里上体育课或是参加各类球赛。 2. OpenAI Gym (强化学习环境) 对于编程和技术领域而言,OpenAI Gym是一个用来开发和比较强化学习算法的工具包。它提供了一系列环境,这些环境中定义了观察空间(observation space),动作(action)及奖励(reward)机制,以帮助研究人员评估不同策略的效果。 例如,在Python中创建一个简单的Gym环境如下所示: ```python import gym env = gym.make('CartPole-v0') # 创建一个名为'CartPole-v0'的游戏环境实例 observation = env.reset() # 初始化游戏状态并返回初始观测值 for _ in range(1000): env.render() # 渲染一帧画面 action = env.action_space.sample() # 获取随机的动作 observation, reward, done, info = env.step(action) # 执行一步操作,并获取反馈信息 if done: break # 如果游戏结束,则退出循环 env.close() # 关闭环境 ``` 3. Gym品牌或连锁店 "Gym"也可能是指某个特定的品牌或者是国际性的健身俱乐部连锁机构的名字,比如Anytime Fitness, Gold's Gym等等。这类企业在全球范围内运营着众多会员制健康俱乐部,为顾客提供专业的健身体验和服务。 为了更准确地满足您的需求,请明确一下您具体想了解哪方面的内容?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

编程熊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值