20180401 - 第九届蓝桥杯 - C/C++程序设计大学B组省赛

第一题

2000年1月1日为该年的第一天,那么2000年5月4日为该年的第几天

答案:125


第二题

给你10组数,每组数有32个-128~127的数表示32个字节,每组数表示一个汉字

每个字节可以用八位二进制数表示,然后每个汉字的排版方式为

字节1 字节2

字节3 字节4

...

字节31 字节32

就是一个转码的过程,直接原码就可以看出来是 九的九次方等于多少?

答案:387420489


第三题

有100个数,求它们的乘积的末尾0的个数

之前看过差不多的题目,只要求出所有数2的因子个数和5的因子个数,然后取小就是0的个数,因为10 = 2*5

答案:31


第四题

这题题目有点没有看清。。


第五题

就是一个排序然后找第k小的数,填空


第六题

有三个数组A,B,C,每个数组有n个数,求出a[i]<b[j]<c[k]的组数

从后往前推,有点难讲


第七题

有个螺旋曲线,给曲线上一点坐标(x,y),求从起点到(x,y)的曲线的长度


就是找规律,然后分类讨论一下


第八题

已知有n个点赞,每个点赞有对应的点赞时间以及点赞的文章编号

如果有一个文章在[t,t+D)区间内的被点赞数>=k次,则其为热门文章

求出所有的热门文章,并按文章编号排序


结构体排序,结构体表示每次点赞

先按编号排,编号相同按时间排,然后从头到尾跑一遍答案就出来了


第九题

淹没大陆,给你一个n*n的图'.'表示海,'#'表示陆地

然后海面上涨,每块大陆的最外围一圈都会被淹没,外围一圈的定义就是大陆上下左右四个方向有海的就是大陆边缘

求海面上涨后有几块大陆被全部淹没了


一看题目就直接两个dfs求连通块个数了,没有想到居然还有一块大陆被分成了两块的情况。。


第十题

有n个数(-100000~100000),从中取k个,求乘积的最大值,对1e9+7取模


先判断n个数中是否有>=0的数

没有,再判断k的奇偶

k为奇数,按降序排序,取前k个的乘积

k为偶数,按升序排序,取前k个的乘积

有,按绝对值降序排序,取前k个,记录最后一个正数和最后一个负数及前k个数负数的个数

负数个数为偶数则前k个乘积为答案

负数个数为奇数,有两种选法

1、将最后一个正数last_z 换成第k个之后的第一个负数num1

2、将最后一个负数last_f 换成第k个之后的第一个正数num2

然后答案就是前k个不算上最后一个正负数的乘积,乘以max(last_f*num1,last_z*num2)(均存在的情况)

还要对num1,num2,last_z,last_f是否存在的情况再进一步讨论


猜你喜欢

转载自blog.csdn.net/w326159487/article/details/79780980
今日推荐