当前位置: 首页 > news >正文

【蓝桥杯集训·每日一题】AcWing 4496. 吃水果

文章目录

  • 一、题目
    • 1、原题链接
    • 2、题目描述
  • 二、解题报告
    • 1、思路分析
    • 2、时间复杂度
    • 3、代码详解
  • 三、知识风暴
  • 求组合数

一、题目

1、原题链接

4496. 吃水果

2、题目描述

n 个小朋友站成一排,等着吃水果。

一共有 m 种水果,每种水果的数量都足够多。

现在,要给每个小朋友都发一个水果,要求:在所有小朋友都拿到水果后,恰好有 k
个小朋友拿到的水果和其左边相邻小朋友拿到的水果不同(最左边的小朋友当然不算数,即最左边的小朋友不包含在 k
个小朋友内)。

请你计算,一共有多少种不同的分发水果的方案

输入格式

一行,三个整数 n,m,k。

输出格式

一个整数,表示合理的分发水果的方案总数量对 998244353 取模后的结果。

数据范围

前 5 个测试点满足 1≤n,m≤5
所有测试点满足 1≤n,m≤2000,0≤k≤n−1

输入样例1

3 3 0

输出样例1

3

输入样例2

3 2 1

输出样例2

4

二、解题报告

1、思路分析

思路来源:y总讲解视频
y总yyds

(1)第一个小朋友(最左边)拿到水果的情况共有m种。
(2)因为题目中的k个小朋友不包括最左边的小朋友,所以先在n-1个小朋友中选择k个小朋友,这k个小朋友和其左边相邻的小朋友的水果不同,总共Cn−1kC_{n-1}^{k}Cn1k种情况。而这k个小朋友由于要和其左边的小朋友拿的水果不同,所以这k个人拿到的水果种类的情况总共(m-1)k种情况。所以总的情况数就有Cn−1kC_{n-1}^{k}Cn1k(m-1)k种。
(3)剩下的n-k-1个小朋友,拿到的水果和其左边小朋友的水果一样,所有他们拿到的水果是唯一确定的,只要确定了(1)(2)的情况总数,总的情况数也就确定了。
(4)所以答案即为Cn−1kC_{n-1}^{k}Cn1km(m-1)k

2、时间复杂度

时间复杂度为O(n2)

3、代码详解

#include <iostream>
using namespace std;
typedef long long LL;
const int N=2010,mod=998244353;
int c[N][N];
int n,m,k;
int main(){cin>>n>>m>>k;//求组合数for(int i=0;i<=n-1;i++){for(int j=0;j<=i&&j<=k;j++){if(!j) c[i][j]=1;else c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;}}//求答案注意类似下面第二行不要写成ans*=m%mod 等形式,因为%的优先级高于*=,就会造成先取模再乘,而我们是要先乘再取模LL ans=c[n-1][k]%mod;ans=ans*m%mod;for(int i=0;i<k;i++){ans=ans*(m-1)%mod;}cout<<ans;return 0;
}

三、知识风暴

求组合数

  • 基本思想:利用公式CnmC_{n}^{m}Cnm=Cn−1mC_{n-1}^{m}Cn1m+Cn−1m−1C_{n-1}^{m-1}Cn1m1递推,每个状态可以由其前面的转态推导出来,类似dp。

相关文章:

【蓝桥杯集训·每日一题】AcWing 4496. 吃水果

文章目录一、题目1、原题链接2、题目描述二、解题报告1、思路分析2、时间复杂度3、代码详解三、知识风暴求组合数一、题目 1、原题链接 4496. 吃水果 2、题目描述 n 个小朋友站成一排&#xff0c;等着吃水果。 一共有 m 种水果&#xff0c;每种水果的数量都足够多。 现在&…...

selenium(6)-----unittest框架

unittest框架 1)测试固件 1)setUp()是用来初始化测试环境所做的工作 2)tearDown()是用来清理环境所做的工作 2)测试套件 把不同的测试脚本&#xff0c;不同类中的测试用例给组织起来放到一个测试套中执行 3)测试用例的要以test_开头 4)如何使用unittest框架 只需要在脚本中定义…...

统计软件与数据分析--Lesson3

dataframe数据常用python操作dataframe数据常用知识点1.创建dataframe1.1使用字典创建DataFrame&#xff1a;1.2使用列表创建DataFrame&#xff1a;1.3使用numpy数组创建DataFrame&#xff1a;1.4从TXT文件中创建DataFrame&#xff1a;1.5从CSV文件中创建DataFrame&#xff1a;…...

竞赛无人机搭积木式编程——以2022年TI电赛送货无人机一等奖复现为例学习(7月B题)

在学习本教程前&#xff0c;请确保已经学习了前4讲中无人机相关坐标系知识、基础飞行控制函数、激光雷达SLAM定位条件下的室内定点控制、自动飞行支持函数、导航控制函数等入门阶段的先导教程。 同时用户在做二次开发自定义的飞行任务时&#xff0c;可以参照第5讲中2021年国赛植…...

oracle基础操作

oracle基础操作语法&#xff1a; 1、查询会话 SQL> select count(*) from v$session;2、增大连接数 SQL> alter system set processes5000 scope spfile;3、增大会话数 SQL> alter system set sessions7552 scopespfile;4、查询 参数&#xff1a; SQL> sho…...

python爬虫数据写入excel

在Jmeter118中描述了如何将接口请求的响应数据写入到csv中&#xff0c;同样的接口如果采用python写法&#xff0c;会简便很多&#xff0c;主要是用到了python中的pandas库#爬取展台数据import requestsimport pandas as pdurlhttps://ficonline.cfaa.cn/Exhibition/searchExhib…...

优思学院|六西格玛DMAIC,傻傻搞不清?

DMAIC还是搞不清&#xff1f; DMAIC是一个用于过程改进和六西格玛的问题解决方法论。它是以下五个步骤的缩写&#xff1a; 定义&#xff08;Define&#xff09;&#xff1a;明确问题&#xff0c;设定项目的目标和目的。绘制流程图&#xff0c;并收集数据&#xff0c;以建立未来…...

【Linux】网络编程套接字(下)

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…...

【Linux网络】网络编程套接字(上)

&#x1f387;Linux&#xff1a; 博客主页&#xff1a;一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限&#xff0c;出现错误希望大家不吝赐教分享给大家一句我很喜欢的话&#xff1a; 看似不起波澜的日复一日&#xff0c;一定会在某一天让你看见坚持…...

十二、51单片机之DS1302

1、DS1302简介 (1)详情查看数据手册。 (2)管角描述 管教名称功能1Vcc2双供电配置中的主电源供电引脚2X1与标准的32.768kHz晶振相连。用于ds1302记时。3X24GND电源地5CE输入信号&#xff0c;CE信号在读写时必须保持高电平6I/O输入/推挽输出I/O&#xff0c;是三线接口的双向数…...

ChatGPT-4震撼发布

3月15日消息&#xff0c;美国当地时间周二&#xff0c;人工智能研究公司OpenAI发布了其下一代大型语言模型GPT-4&#xff0c;这是其支持ChatGPT和新必应等应用程序的最新AI大型语言模型。该公司表示&#xff0c;该模型在许多专业测试中的表现超出了“人类水平”。GPT-4, 相较于…...

HTML樱花飘落

樱花效果 FOR YOU GIRL 以梦为马&#xff0c;不负韶华 LOVE YOU FOREVER 实现代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html><head><meta http-equiv"…...

力扣-排名靠前的旅行者

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1407. 排名靠前的旅行者二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交SQL运行结果5.其…...

马上要面试了,还有八股文没理解?让ChatGPT来给你讲讲吧——如何更好使用ChatGPT?

最近这段时间 ChatGPT 掀起了一阵 AI 热潮&#xff0c;目前来看网上大部分内容都是在调戏 AI&#xff0c;很少有人写如何用 ChatGPT 做正事儿。 作为一个大部分知识都是从搜索引擎和 GitHub 学来的程序员&#xff0c;第一次和 ChatGPT 促膝长谈后&#xff0c;基本认定了一个事…...

怎么避免服务内存溢出?

在高并发、高吞吐的场景下&#xff0c;很多简单的事情&#xff0c;会变得非常复杂&#xff0c;而很多程序并没有在设计时针对高并发高吞吐量的情况做好内存管理。 自动内存管理机制的实现原理 做内存管理&#xff0c;主要考虑申请内存和内存回收两部分。 申请内存的步骤&…...

01_I.MX6U芯片简介

目录 I.MX6芯片简介 Corterx -A7架构简介 Cortex-A处理器运行模型 Cortex-A 寄存器组 IMX6U IO表示形式 I.MX6芯片简介 ARM Cortex-A7内核可达900 MHz,128 KB L2缓存。 并行24bit RGB LCD接口&#xff0c;可以支持1366*768分辨率。 3.8/10/16位 并行摄像头传感器接口(CS…...

嵌入式学习笔记——STM32的中断控制体系

STM32的中断控制体系前言STM32中断的概念中断类型中断控制常用控制函数区分中断源与中断信号配置中断优先级分组问题中断使能中断服务函数总结前言 上一篇中&#xff0c;借着串口接受的问题&#xff0c;简要说了一下串口中断的作用和用法&#xff0c;本文将对STM32的中断控制体…...

如何发布自己的npm包

一、什么是npm npm是随同nodejs一起安装的javascript包管理工具&#xff0c;能解决nodejs代码部署上的很多问题&#xff0c;常见的使用场景有以下几种&#xff1a; ①.允许用户从npm服务器下载别人编写的第三方包到本地使用。 ②.允许用户从npm服务器下载并安装别人编写的命令…...

Qt QProcess管道命令带“|”多命令执行获取stdout输出问题总结

问题描述: 在Qt中,使用system和QProcess执行命令,system执行的命令,我们通常不需要获取stdout的输出结果,所以只需要得到返回结果,知道成功失败即可。 而用到QProcess,多半是要获取输出的返回信息。 这里的返回信息只要是标准输出的即可,当然了,也可以是别的channe…...

【JavaEE进阶篇2】spring基于注解开发1

在上一篇文章当中&#xff0c;我们提到了怎样使用spring来创建一个bean对象。下面&#xff0c;我们继续来研究一下&#xff0c;更加优胜的开发方式&#xff1a;基于注解开发【JavaEE进阶篇1】认识Spring、认识IoC、使用spring创建对象_革凡成圣211的博客-CSDN博客springIoc、使…...

NanoPC-T6开发板实战:手把手教你为RK3588编译并烧录Recovery镜像

NanoPC-T6开发板实战&#xff1a;从零构建RK3588 Recovery镜像的完整指南 当你的NanoPC-T6开发板因系统崩溃变成"砖头"时&#xff0c;一个可靠的Recovery镜像就是救命稻草。本文将带你深入Rockchip RK3588平台的恢复系统构建全流程&#xff0c;从工具链准备到最终烧录…...

【day63】

以前有个孩子&#xff0c;他分分钟都在碎碎念。不过&#xff0c;他的念头之间是有因果关系的。他会在本子里记录每一个念头&#xff0c;并用箭头画出这个念头的来源于之前的哪一个念头。翻开这个本子&#xff0c;你一定会被互相穿梭的箭头给搅晕&#xff0c;现在他希望你用程序…...

为什么头部金融科技公司已在2026 Q1全面切换Python AOT?——基于百万行代码仓库的构建耗时、镜像体积、安全扫描通过率真实数据复盘

第一章&#xff1a;Python 原生 AOT 编译方案 2026 对比评测报告Python 社区在 2025 年底迎来关键演进&#xff1a;CPython 官方正式将原生 AOT&#xff08;Ahead-of-Time&#xff09;编译能力纳入 3.14 开发主线&#xff0c;并以“Project Graviton”为代号推动落地。2026 年初…...

HunyuanVideo-Foley实战指南:FFmpeg后处理添加混响/均衡/压缩提升商用质量

HunyuanVideo-Foley实战指南&#xff1a;FFmpeg后处理添加混响/均衡/压缩提升商用质量 1. 引言&#xff1a;为什么需要音效后处理 在视频制作领域&#xff0c;专业级音效是提升作品质量的关键因素。HunyuanVideo-Foley生成的原始音效虽然已经具备良好的基础&#xff0c;但通过…...

SEO_10个简单有效的SEO技巧,快速提升网站排名

SEO:10个简单有效的SEO技巧&#xff0c;快速提升网站排名 在当今互联网时代&#xff0c;网站的排名直接关系到它的流量和盈利能力。SEO&#xff08;搜索引擎优化&#xff09;技巧就是为了帮助网站在搜索引擎中获得更高的排名。本文将分享十个简单有效的SEO技巧&#xff0c;帮助…...

别再手写Verilog了!用Intel Platform Designer(Qsys)在DE2-115上5分钟搭个LED控制器

图形化革命&#xff1a;5分钟用Platform Designer构建FPGA系统的实战指南 从代码到模块化思维的转变 在传统FPGA开发中&#xff0c;工程师往往需要从零开始编写Verilog代码&#xff0c;即使是简单的LED控制逻辑也不例外。这种开发方式不仅效率低下&#xff0c;而且容易出错——…...

告别飞书文档迁移困境:feishu-doc-export的自动化解决方案

告别飞书文档迁移困境&#xff1a;feishu-doc-export的自动化解决方案 【免费下载链接】feishu-doc-export 项目地址: https://gitcode.com/gh_mirrors/fe/feishu-doc-export 在企业数字化转型过程中&#xff0c;文档迁移往往成为团队效率的隐形障碍。市场部小张为了将…...

毕业设计系统实战:从零构建高可用选题管理平台

毕业设计系统实战&#xff1a;从零构建高可用选题管理平台 高校毕业设计&#xff08;论文&#xff09;是本科教学的重要环节&#xff0c;但传统的线下或简易线上管理方式常常让师生和管理员头疼不已。每到选题季&#xff0c;系统卡顿、选题冲突、流程混乱、数据丢失等问题层出不…...

施密特触发器除了整形还能干啥?聊聊它在Arduino按键消抖和信号调理里的妙用

施密特触发器在Arduino中的高阶应用&#xff1a;从按键消抖到信号调理的实战指南 当你在调试Arduino项目时&#xff0c;是否遇到过按键响应不稳定、传感器读数跳变的问题&#xff1f;这些看似简单的硬件问题&#xff0c;往往会让开发者花费大量时间在软件滤波上。实际上&#x…...

Endnote参考文献序号对齐的终极解决方案

1. 为什么参考文献序号会对不齐&#xff1f; 很多科研工作者在使用Endnote插入参考文献时都遇到过这样的尴尬&#xff1a;当文献序号从个位数增长到十位数时&#xff08;比如从[9]变成[10]&#xff09;&#xff0c;原本整齐排列的参考文献列表突然变得参差不齐。这个问题看似简…...