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是否存在的情况再进一步讨论