关于湖南工业大学“蓝桥杯”预选赛

题目整体来说就是水,对于我这个没怎么学数据结构,哈夫曼神马的人来说也是这样。

=====================================

下面开始分析一下这次的题目:

1、数组去重

题目大意:

    给一串int类型数据,要求去掉中间相同的数据,保持原有顺序。

这道题。。。。我直接开了一个能爆掉int的bool型数组用来判断是否已经存在该数。存在直接忽略。。

就这样。

2、数制转换

题目大意:

    给一个int类型的整数,转换成八进制然后输出。

    好吧。。这题是最简单的。。

输入用%d ,输出用%o。然后世界就清净了。。

3、分段和平方数

题目大意:

    把一个6位正整数分为前后两个3位数,若该数等于所分两个3位数的和的平方,则称该6位数为6位分段和平方数。

这个题目我直接用的6个for嵌套暴力做的,输出结果之后发现只有2个数。。囧

4、分解质因数

题目大意:

    输入一个int型十进制正整数,将其分解为质因数之积。

    要求把整数表示为素数(>1)相乘形式从小到大顺序排列的乘积形式。

    例如:90=2*3*3*5,91=7*13。

我从2开始进行质数判断,如果是质数就与给的数取余,余数=0,输出,然后将给的数除以该质数。直到给的数变1.

5、折叠方阵

题目大意:

    n阶折叠方阵是把从指定的起始数开始的n*n个连续整数折叠为n行n列的方阵:起始数位于方阵的左上角,然后从起始数开始递增,按顺时针方向层层折叠地排列为顺时针折叠方阵。

    示例:输入起始数a=10,方阵阶n=4(假定n<=10)

    则输出:

    10 11 14 19

    13 12 15 20

    18 17 16 21

    25 24 23 22

这道题直接模拟就OK

6、第K小

题目大意:

    输入正整数N,K,在N个数的数组中找出第k个最小的数。

    示例数组: n = 10     k = 5   ( 0 < k,n <= 1000) 

    a[10]={23,1,12,78,68,10,34,900,23,12}

    示例输出:23

这个题。。。输入之后,直接一个sort然后输出就OK。。只是要注意一下int会爆掉。

7、最长单调递减子序列

    在给定的数组中找出最长的连续单调递减(a[i]<=a[i+1])子列并输出(有多个长度相同的连续单调递减子列时只输出第一个)。

这道题只要遍历一遍就OK了,一直更新序列开始的编号和长度就OK

8、最长单词

    编程,输入一段英语,将此段英语中最长的单词输出(假定英语单词中不出现非英语字母,如不出现it‘s形式的单词。段长<=500个字符,有多个单词长度相同时只输出第一个单词)。

    PS: 在本题目中,标点符号以及空格都是单词与单词之间的分隔符

这个。。也是遍历就能解决的问题,原理和第7题一样(我直接拿第七题代码改的)。只是要注意不能用%s输入。

我用的是%[^\n], 输入之后要用getchar();缓冲掉一个回车。

9、哈夫曼编码

这道题就是给了一个哈夫曼树的代码,挖了2个空。。要你填进去。。

不会写。。。%>_<%

10和11: 压缩和解压缩

用字典法写压缩。。

不会写复杂的。写了个最简单的。。只找一个字符,重复的部分用数字替换。。就这样而已。。囧rz。。

最后截图留念~(由于没有开判定,所以默认题目全Wrong Answer,悲了个催的。)

P.S : 请无视掉QQ音乐桌面歌词的乱入

结果出来了的说。。(↓↓↓↓)


原文地址:https://www.cnblogs.com/wuhenqs/p/2846650.html