uestc 1554 Counting Binary Trees (catalan 数)

安卓无障碍服务保活实战:如何用AccessibilityService实现后台常驻(附完整代码) 本文深入解析如何利用Android无障碍服务(AccessibilityService)实现后台服务保活,涵盖多版本系统适配、前台服务集成、开机自启机制等关键技术。通过详细的Kotlin代码示例和合规性指导,帮助开发者构建稳定可靠的后台服务解决方案,同时避免因滥用无障碍服务导致的应用下架风险。 阅读详情


此题 上一题的升级版 。。

数据规模变大, 还要mod 一个数 。

递推公式  Cn+1 = Cn * (4n + 2) / ( n + 2)


由于 有除法 还要取模  ,那么 就要求逆元,但是给定的m 不一定和 (n+2) 互质,不能直接求 逆元,那么 就要吧 N+2 中的 和 m 相同的因子提出来 特别计算就可以。

#include <cstdio>  
#include <cstring>  
#include <iostream>  
  
using namespace std;  
int n , m;  
#define LL long long   
  
int p[25];  
int num[25];  
int tot;  
void init_p(){  
    tot = 0;  
    int t = m;  
    memset(num,0,sizeof(num));  
    for(int i=2 ;i*i<= t;i++){  
        if(t%i==0){  
            tot ++;  
            p[tot] = i;  
            while(t%i == 0 ){  
                t = t/i;  
            }  
        }  
    }  
    if(t>1){  
        tot ++ ;  
        p[tot] = t;  
    }  
}  
int f(int a){  
    int  ans = 1;  
    for(int i=2 ;i*i<= a;i++){  
        if(a%i== 0){  
            ans *= i -1;  
            a /= i;  
            while(a%i==0){  
                ans *= i;  
                a /= i;  
            }  
        }  
    }  
    if(a > 1){  
        ans *= a-1;  
    }  
    return ans;  
}  
LL pow(LL a,LL b){  
    LL ans = 1;  
    while(b){  
        if(b&1){  
            ans *= a;  
            ans %= m;  
        }  
        a = a*a ;  
        a%= m;  
        b>>=1;  
    }  
    return ans;  
}  
void solve(){  
    LL sum = 1;  
    LL ans = 1;  
    int t = f(m);  
    for(int i=2;i<=n;i++){  
        int a = 4*(i-1) +2;  
        int b = (i-1) + 2;  
        for(int j=1;j<=tot;j++){  
            while(a%p[j]== 0){  
                num[j]++;  
                a /= p[j];  
            }  
        }  
        for(int j=1;j<= tot;j++){  
            while(b%p[j] == 0){  
                num[j]--;  
                b/= p[j];  
            }  
        }  
        ans *= a;  
        ans %= m;  
        ans *= pow(b,t-1);  
        ans %= m;  
        LL tmp = ans;   
        for(int i=1;i<= tot;i++){  
            if(num[i]){  
                tmp *= pow(p[i],num[i]);  
                tmp %= m;  
            }  
        }  
        sum += tmp ;  
        sum %= m;  
    }  
    printf("%d\n",(int)sum%m);  
}  
int main(){  
    while(~scanf("%d%d",&n,&m)){  
        if(n == 0 && m ==0 ) break;  
        init_p();  
        solve();  
    }  
}  
  




Android音频子系统分析-car_audio_configuration.xml 先附上一个例子,再逐一解释。概括来说,该文件描述了车里有哪些区域,每个区域划分了多少组,每个组包含了哪些设备,每个设备接收哪些类型的音频流。 阅读详情

相关推荐

大模型时代必备技能:3种向量量化技术对比(PQ/AQ/RVQ)与选型指南

本文深入解析了大模型时代处理海量向量数据的关键技术——向量量化。通过对比Product Quantization (PQ)、Additive Quantization (AQ)和Residual Vector Quantization (RVQ)三种主流技术的核心原理、性能表现与适用场景,为工程师提供了从理论到实践的选型指南,旨在解决向量存储与检索的效率瓶颈,助力RAG等大模型应用高效落地。

silver的专栏 799

HDU 3240 Counting Binary Trees(卡特兰数前n项和取模,i+1和模m不一定互质情况)

There are 5 distinct binary trees of 3 nodes: Let T(n) be the number of distinct non-empty binary trees of no more than n nodes, your task is to calculate T(n) mod m. Input The input contains at most...

FreeGo~ 342

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

数字后端零基础入门系列 | Innovus零基础LAB学习Day7

weixin_37584728的博客 2273

Counting Binary Trees (Catalan数 + 分解质因子)

Problem Description There are 5 distinct binary trees of 3 nodes: Let T(n) be the number of distinct non-empty binary trees of no more thannnodes, your task is to calculate T(n) modm. Input ...

YANSHUOXU的博客 474

C51编程25-应用篇(单片机与电脑端实现wifi通讯)

单片机使用ESP-01S wifi模块与电脑端进行数据通讯。

qq_34343637的博客 1万+

dmx512协议c语言编程,DMX512协议+c程序代码.pdf

DMX512 协议1.协议简介DMX 是Digital MultipleX 的缩写 ,意为多路数字传输。DMX512 控制协议是美国舞台灯光协会(USITT)于1990 年发布的灯光控制器与灯具设备进行数据传输的工业标准 ,全称是 USITT DMX512(1990) ,包括电气特性、数据协议、数据格式等方面的内容。2. 电气特性和物理层2.1. 电气特...

weixin_39928993的博客 2544

HOJ 3240 Counting Binary Trees(卡特兰数,扩欧求逆元,经典)

卡特兰数,扩欧求逆元 题目意思: n个节点的二叉树,可以构成有 catalan[n] 种不同的二叉树。 sum[n] 是卡特兰数前 n项的总和。 每次给出两个数 n, m, 求 sum[n] % m 是多少。 本题要点: 1、n很大,如果用大数来存第 100000 个卡特兰数,肯定超时。 2、卡特兰数的 递推公式 h[i] = h[i - 1] * (4 * i - 2) / (i + 1) 要求每一个卡特兰数 对m的模, 这里有除法,需要 求 (i + 1) 在模 m的情况下的逆元。 3、扩展欧几里得算法

qq_38232157的博客 216

基于远程服务器 Tip_Adapter源码从零开始复现

从零一步步实现源代码的运行

zcyzcyjava的博客 1602

HDU3240 Counting Binary Trees (卡特兰数,拓欧求逆元)

Counting Binary Trees  HDU - 3240 There are 5 distinct binary trees of 3 nodes:  Let T(n) be the number of distinct non-empty binary trees of no more than nnodes, your task is to calcu

Eiffel的博客 673

基于STM32的智能血氧、心率、体温、血压监测系统

摘要:本文设计了一款基于STM32F103C8T6的多功能健康监测系统,可实时检测血氧、心率、体温和血压四项生理参数。系统集成MAX30102、DS18B20等传感器模块,采用OLED显示和蓝牙无线传输技术,实现一键血压测量、阈值报警及手机APP数据管理功能。硬件设计包含传感器采集、电源管理、显示报警等模块;软件采用模块化架构,实现数据采集处理、蓝牙通讯等功能。测试表明系统测量准确可靠,为家庭健康监测提供了便携解决方案。未来可扩展更多监测参数和智能分析功能。

3254968421的博客 771

基于STC8G1K08A单片机的7位PWM输出程序(PCA功能实现呼吸灯效果)

摘要:本文展示了基于STC8G单片机的PWM占空比控制实现。通过定时器0中断每5ms调整占空比(0-127范围),实现呼吸灯效果。关键代码包括:1)PWM初始化(7位PWM模式);2)定时器配置(1ms中断);3)主循环根据标志位动态调整占空比。硬件采用P5.4引脚输出PWM信号,通过direction标志实现占空比自动增减循环。该方案适用于LED亮度调节等场景,系统时钟24MHz,采用12T模式。

weixin_74013772的博客 867

HDU 3240 Counting Binary Trees(卡特兰数+分解素数+扩展欧拉求逆元)

Counting Binary Trees Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 485    Accepted Submission(s): 146 Problem Description There

布生气 2294

【主题建模】一种基于深度学习的主题建模方法:BERTopic(实战篇)

BERTopic 是基于深度学习的一种主题建模方法。2018 年底,Devlin et al. 提出了 Bidirectional Encoder Representations from Transformers (BERT)。BERT 是一种用于 NLP 的预训练策略,它成功地利用了句子的深层语义信息。

Data · Model · Agent · Repeat 2万+

HDU 3240 Counting Binary Trees(组合数学-卡特兰数,数论-整数快速幂,数论-求逆元)...

Counting Binary Trees Problem Description There are 5 distinct binary trees of 3 nodes: Let T(n) be the number of distinct non-empty binary trees of no more thannnodes, your t...

weixin_30559481的博客 229

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

FZU 1775 Counting Binary Trees(卡特兰数前n项和模m)

题意:设T(n)为n

glq007的acm的奋斗 1518

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

HTML基础知识

HTML基础知识 关于浏览器 Web标准 1、谷歌浏览器,内核Chromium 2、IE浏览器 ,内核Trident 3、火狐浏览器,内核Gecko 认识HTML HTML指的是超文本标记语言(Hyper Text Markup Language)是用来描述网页的一种语言。 HTML不是—种编程语言,而是—种标记语言(markup language) 标记语言是—套标记标签(markup tag) 超文本 所谓超文本,有2层含义: 1.因为它可以加入图片、声音、动画、多媒体等内容(超越文本限制) 2.它还可

Love_Roro的博客 559

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDU 3240 Counting Binary Trees

Problem Description There are 5 distinct binary trees of 3 nodes: Let T(n) be the number of distinct non-empty binary trees of no more than n nodes, your task is to calculate T(n) mod m. In

Occult 701

HDU3240-Counting Binary Trees(Catalan数+求逆元(非互质))

Counting Binary Trees Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 564    Accepted Submission(s): 184 Problem Description There

mowayao的专栏 1692

HDOJ-3240 Counting Binary Trees(数论)

典型的卡特兰数问题,答案就是卡特兰数列前n项和。 关于卡特兰数列: http://www.cppblog.com/MiYu/archive/2010/08/07/122573.html 这里比较棘手的问题就是取模问题,要用到乘法逆元,但比起HDOJ4828这道题来 (http://blog.youkuaiyun.com/moringrain/article/details/47341247)

GoldMoon 644

Counting Binary Trees - HDU 3240 卡特兰数+逆元

Counting Binary Trees Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 660    Accepted Submission(s): 213 Problem Description There

提比的强行AC 773

spoj 4491. Primes in GCD Table 莫比乌斯反演

http://www.spoj.com/problems/PGCD/ 题意: 给出 a ,b  (1 如果gcd(x ,y) = 1; 这个问题比较好求。 g(n) 为  gcd(x ,y) = n 的方案数。 f( n )  为  gcd(x ,y) = b ,其中 n|b 的所有方案数 f( a ) =  sigma( g( b ))   条件  a|b; g( n ) =

OceanLight的专栏 1580

hdu 1130 How Many Trees?

此题 是 简单的 catalan 数的应用, 二叉树的表示方法 可以转换乘 卡特兰数中典型的括号合法种类数 的问题。 我的想法 是 如果 按树的深搜顺序 第一次经过一个点时 画 左括号 , 此节点的左节点便利完成后又回到这个点 这是 画 右括号,这样的话, 每一个树 都能唯一的对应一个合法括号序列, 每一个 合法的括号序列页唯一的对应一棵树。   这样的话 , 这个问题 就转化乘 最简单的 ca

OceanLight的专栏 1543

zoj 3688 The Review Plan II 组合数学

我的解法比较慢。 复杂度 O(nlgn) 有O( N )的解法  递推公式看不懂 此题是 有 禁位 的排列 。相当于在 n*n的棋盘中  设置了 2n 个 禁位。 有 k个在 这 2*n 个禁位中 的排列数  Pk。 这 2*n 个 禁位 可以看成  一个有 t =2*n 个点 形成的环中 ,选出k个不相邻的组合数。 可以通过 枚举圆上的 点 就将 圆拆分成了链。   先选取一

OceanLight的专栏 1337

uva 861 Little Bishops

问 在n*n 的国际象棋棋盘中 能放 k个象的方案数? 国际象棋中 白格 和 黑格 中的象不能互相攻击, 就可以 把这两部分拆开来看,分别统计 由于象是斜着攻击的,我们可以把棋盘旋转45 度,然后对 格子做 水平和竖直方向的交换(不会影响方案数)。 把白格子弄出来就是               *           *  *  *       *  *  *  *  *  

OceanLight的专栏 1276

zoj 3687 The Review Plan I

题意抽象出来就是 在  n*n 的 棋盘中 加了 m 个禁位, 放置 n 个棋子 ,每两个棋子不在同一行 同一列,问有多少中放置方式 ? trick  :     M 个禁位 中 有相同 坐标的点。 解法 : 利用 有禁位的排列的公式 (容斥原理):   n! - r1 *( n-1)! + r2*(n -2)! - r3*(n-3)! +.......... ri  指 在禁区中 选

OceanLight的专栏 1097

hdu 4045 Machine scheduling 组合数学

题意是 有n台机器,从中选出r台机器,满足两台的编号差不小于k , 并将这r台,分成m组, 问有多少种组合方式? 第二部分 就是裸的 第二类斯特林数。 重点是第一部分 :      问题 抽象出来就是  : 从 数字 1 - n 种,选出 r 个 ,相邻的两个差不小于k 。      这个题的解法有两种。 一种是 dp   一个一个递推。      第二种就是  组合公式。

OceanLight的专栏 932
上一篇: hdu 1130 How Many Trees?
下一篇: KMP 算法。。。 字符串匹配 ,复杂度 O(n+m)
OceanLight
博客等级 码龄14年 21粉丝 70原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值