5 条题解
-
2
考虑到有些同学没有学过Python,还是决定给出C++的解题代码, 同时考试时会屏蔽题库以防同学们直接复制粘贴. 题库是给大家练习用的, 不是抄袭用的,希望同学们自律, 好好练习提高编程能力.
#include<bits/stdc++.h> using namespace std; int a[6]; //桶排序数组, 表示1-5号娃娃出现的次数 int main(){ int n,m; cin>>n; for(int i=0;i<n;i++){ cin>>m; //m号娃娃 a[m]++; //m号娃娃每出现一次累加1 } sort(a,a+6); //按照出现次数排序 for(int i=1;i<=5;i++) if(a[i]){ //为防止输出出现零次的娃娃,有值才输出 cout<<a[i]<<endl; break; //只输出出现次数最少的娃娃, 然后跳出 } cout<<a[5]; //再输出出现次数最多的娃娃 return 0; }
-
1
能凑成几套完整的套娃, 取决于型号最好的那个娃娃的数量, 比如说5号娃娃最少,只有1个, 那你怎么也凑不出来2套娃娃. 最少能看见几个娃娃, 取决于数量最多的那个型号的娃娃有几个, 假设3号娃娃最多, 有6个, 那么比它小的可以套在它里边, 比它大的可以把它套住, 桌面上最少能看见的娃娃依然是6个.
为防止同学们直接复制粘贴, 下面给出Python版的代码作为参考: 同时欢迎同学们积极书写自己的题解.
#输入娃娃的数量n并转换为int格式 n=int(input()) #俄罗斯套娃英文:Russian Doll 默认输入的一长串字符串, 包含空格 RussianDoll=input() #用split()方法分割成单个元素的列表,以空格为分隔符 dollList=RussianDoll.split(' ') #将字符列表转换为整数列表 dollInt=[int(i) for i in dollList] #输出最小值, 即最少能凑够几套完整的套娃 print(min(dollInt)) #创建一个列表准备进行桶排序 dolltimes=[0,0,0,0,0,0] for i in dollInt: #某型号的套娃每出现一次就累计加1, dolltimes表示每个型号的娃娃出现的次数 dolltimes[i]+=1 #排序 dolltimes.sort() #出现次数最多的排在最后边, 也就是下标为5的元素 print(dolltimes[5])
``
- 1
信息
- ID
- 545
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 46
- 已通过
- 27
- 上传者