CSP2019入门级第一轮-排列组合题

今天是七夕,我是你们的七夕青蛙,孤寡孤寡!

才怪,我是羊羔,不过关于七夕的文章我会尽快更的,给你个眼神自己体会

今天不更信息学奥赛一本通啦,要更的是我遇到的真题——排列组合中的一道题

*注:纯纯自己的解法,勿喷


目录

原题

分析

错误解法

正确解法

解题过程+答案

练习题



原题

第 13 题

—些数字可以颠倒过来看,例如 0,1,8。0,1,8 颠倒过来还是本身,6 颠倒过来是 9,9 颠倒过来看还是 6,其他数字颠倒过来都不构成数字。
类似的,一些多位数也可以颠倒过来看,比如 106 颠倒过来是 901。假设某个城市的车牌只由 5 位数字组成,每一位都可以取 0 到 9。
请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?()

  1.  A.60
     B. 125
     C. 75
     D. 100

本题共 2 分


分析

咳咳,这道题非常简单,今天就是来水一下,毕竟好久没法文章了

好了废话不多说,咱就开始吧:

错误解法

颠倒过来不变的数字只有三个:0,1,8,而这里是五位车牌,可以重复

所以我们不禁把题目转化为,用这三个数字组成不同的五位数(首位可以为0)

然后就用乘法原理,第一位可以为0,1,8,第二位可以为0,1,8,第三位……3*3*3*3*3=3^5

而事实上,根本就找不到正确答案,所以这是错误解法

正确解法

正确解法其实想想就明白了。

比如180,颠倒过来是081,虽然数字是一样的,但顺序错了,所以这个不算

所以要考虑的不仅有颠倒过来不变的数字,还有顺序

总结一下:这里的颠倒相当于镜像里的数,要满足条件必须是回文数

五位的回文数,第一位和第五位相等,第二位和第四位相等,第三位随便

因此我们只需要考虑前三位就可以,后面两位是根据前两位的变化而变化,不用考虑

但是,我们还需要新考虑一组数字,6和9,它们虽然颠倒后不一样,可颠倒后依旧是数字

仔细观察,我们发现,如果把回文数中的其中一位变成6,那么它相对应的另一位就是9

例:16091,颠倒后依旧是16091

所以我们考虑的范围变成了1,8,0,6,9,但是要注意,中间的第三位不能是6或9!

根据以上的所有分析,我们要先排前两位,再算第三位,用乘法原理相乘就可以了


解题过程+答案

第一位:0,1,8,6,9,共5种

第二位:0,1,8,6,9,共5种

第三位:0,1,8,共3种

5*5*3=75(种)

故选C,75种


是不是超级简单?连公式都没用

至于为什么用乘法原理……不会再说吧

不过心思细腻的小羊羔为你们准备了一道练习题哦~

还不是因为自己不会做

*同来自真题,详见标题

练习题

第 7 题

把 8个同样的球放在 5 个同样的袋子里,允许有的袋子空着不放,问共有多少种不同的分法?()

提示:如果 8 个球都放在一个袋子里,无论是哪个袋子,都只算同一种分法。

  1.  A. 22
     B. 24
     C. 18
     D. 20

本题共 2 分


提示:此题适用于隔板法,等我会了再讲

又来推荐我的好友啦:

H.Y_C的博客_CSDN博客-信奥赛一本通,C++坑人系列,刷题领域博主

还有

c++程序猿 康**的博客_CSDN博客-领域博主

不用谢,886~

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
2023 csp-j入门级第一轮是中国计算机科学会议(CSP)针对初学者设计的一道。根据目的具体要求,试内容可能涉及算法、编程语言、数据结构等方面的知识。 对于这样的试,学生们需要运用自己所学的知识和技能,通过编程实现目要求。例如,可能需要设计一个算法来解决一个具体的问,或者使用特定的数据结构来组织和处理数据。 为了完成这样的试,学生们首先需要理解目的要求和限制条件,确保对目中涉及的概念和术语有所了解。接下来,他们需要分析问,确定解决问的方法和步骤。在实际编程实现时,可以选择合适的编程语言和工具,并按照目要求进行编码。 在完成编码后,学生们需要进行测试和调试,确保程序能够正确运行并得到正确的结果。在测试过程中,可以使用一些已知的测试用例来验证程序的正确性,并对程序进行优化,以提高其性能。 最后,将代码提交,并等待评审结果。评审过程可能涉及代码质量、算法复杂度、正确性等方面的考量。根据评审结果,学生们可以了解自己的编程水平和不足之处,并进行相应的学习和提高。 总体来说,解答2023 csp-j入门级第一轮需要学生在编程基础上运用算法和数据结构的知识,进行问的分析和解决。通过这样的学习和实践,学生们可以提高自己的编程能力,并逐渐成长为优秀的程序员。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值