SRM500

A
最大概率输的一定是最多人投的那个,模拟

code: …好像被我自己不小心删掉了…….

B
看不懂a

C
枚举2,4,8,9的个数后可以知道所有数的个数,预处理1+10+100+..1000..的和后直接算贡献

code:

class ProductAndSum {
    public:
    ll s[maxn];
    int u2,u3,u5,u7,u;
    ll pw(ll x,int k)
    {
        ll re=1ll;
        for(;k;k>>=1,x=x*x%Mod) if(k&1)
            re=re*x%Mod;
        return re;
    }
    ll inv[maxn],pinv[maxn],p[maxn];
    void pre()
    {
        s[1]=1ll;
        for(int i=2,t=10ll;i<maxn;i++,t=t*10ll%Mod) s[i]=(s[i-1]+t)%Mod;

        p[0]=1ll; for(ll i=1;i<maxn;i++) p[i]=p[i-1]*i%Mod;
        pinv[maxn-1]=pw(p[maxn-1],Mod-2);
        for(ll i=maxn-2;i>=0;i--) pinv[i]=pinv[i+1]*(i+1ll)%Mod;
        for(ll i=1;i<maxn;i++) inv[i]=pinv[i]*p[i-1]%Mod;
    }
    ll C(int x,int y){return (ll)y*inv[x]%Mod;}
    ll cal(int i2,int i4,int i8,int i9)
    {
        int i6=u2-i2-i4*2-i8*3;
        int i3=u3-i6-i9*2;
        int i1=u-i2*2-i3*3-i4*4-i6*6-i8*8-i9*9;
        if(i1<0||i3<0||i6<0) return 0ll;

        int n=i1+i2+i3+i4+u5+i6+u7+i8+i9;
        ll re=0,tmp;

        tmp=p[n]*pinv[i1]%Mod*pinv[i2]%Mod*pinv[i3]%Mod*pinv[i4]%Mod*pinv[u5]%Mod;
        tmp=tmp*pinv[i6]%Mod*pinv[u7]%Mod*pinv[i8]%Mod*pinv[i9]%Mod;
        tmp=tmp*s[n]%Mod;

        if(i1) (re+=tmp*C(n,i1)%Mod)__;
        if(i2) (re+=tmp*2ll%Mod*C(n,i2)%Mod)__;
        if(i3) (re+=tmp*3ll%Mod*C(n,i3)%Mod)__;
        if(i4) (re+=tmp*4ll%Mod*C(n,i4)%Mod)__;
        if(u5) (re+=tmp*5ll%Mod*C(n,u5)%Mod)__;
        if(i6) (re+=tmp*6ll%Mod*C(n,i6)%Mod)__;
        if(u7) (re+=tmp*7ll%Mod*C(n,u7)%Mod)__;
        if(i8) (re+=tmp*8ll%Mod*C(n,i8)%Mod)__;
        if(i9) (re+=tmp*9ll%Mod*C(n,i9)%Mod)__;
        return re;
    }
    int getSum(int p2, int p3, int p5, int p7, int S) {
        u=S;
        u2=p2; u3=p3; u5=p5; u7=p7;
        u-=u5*5+u7*7;
        if(u<0) return 0;
        pre();
        ll re=0;
        for(int i2=0;i2<=p2;i2++) for(int i4=0;i4*2+i2<=p2;i4++) for(int i8=0;i8*3+i4*2+i2<=p2;i8++)
            for(int i9=0;i9*2<=p3;i9++)
                (re+=cal(i2,i4,i8,i9))__;
        return re;
    }
};
Python网络爬虫与推荐算法新闻推荐平台:网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题、文本、图片、视频链接(保留排版) 推荐算法:权重衰减+标签推荐+区域推荐+热点推荐.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
好的,对于这个问题,您可以通过以下步骤来使用srm32f103c8t6的PWM输出驱动PB3引脚上的无源蜂鸣器: 1. 首先,需要在开发环境中配置srm32f103c8t6的PWM输出。可以通过调用STM32 HAL库中的相应函数来实现。例如,可以使用以下代码来初始化PWM输出: ```c // 初始化PWM GPIO引脚 GPIO_InitTypeDef GPIO_InitStruct = {0}; GPIO_InitStruct.Pin = GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); // 初始化PWM定时器 TIM_HandleTypeDef htim; TIM_OC_InitTypeDef sConfigOC = {0}; htim.Instance = TIM1; htim.Init.Prescaler = 0; htim.Init.CounterMode = TIM_COUNTERMODE_UP; htim.Init.Period = 1000; htim.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; HAL_TIM_PWM_Init(&htim); sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 500; HAL_TIM_PWM_ConfigChannel(&htim, &sConfigOC, TIM_CHANNEL_4); HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_4); ``` 这个代码初始化了PB3引脚作为PWM输出引脚,同时初始化了一个定时器(这里使用的是TIM1)来产生PWM波形。其中,定时器的周期设置为1000,占空比设置为50%。 2. 接下来,需要在程序中控制PWM的占空比来控制蜂鸣器的声音。可以通过调用以下代码来改变PWM的占空比: ```c // 改变PWM占空比 TIM_OC_InitTypeDef sConfigOC = {0}; sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = 250; HAL_TIM_PWM_ConfigChannel(&htim, &sConfigOC, TIM_CHANNEL_4); HAL_TIM_PWM_Start(&htim, TIM_CHANNEL_4); ``` 这个代码将PWM的占空比改为25%,从而使蜂鸣器发出更低的声音。 3. 最后,需要在程序中实现适当的逻辑来控制蜂鸣器的声音。例如,可以使用以下代码来使蜂鸣器持续发出一段时间的声音: ```c // 持续发出声音 HAL_Delay(1000); HAL_TIM_PWM_Stop(&htim, TIM_CHANNEL_4); ``` 这个代码使用了HAL_Delay函数来让程序等待1000毫秒,然后停止PWM输出,从而停止蜂鸣器的发声。 希望这个回答能够帮助您解决问题,如果您还有其他问题,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值