前言

笔试一共三道编程题,分数依次为100、200、300,需要按顺序依次完成,只有做完这一道题,才能进入下一道题,无法跳题,使用的是牛客网,允许跳出界面使用自己的IDE。

题目一:字符串分割

给定一系列的字符串,字符串的个数为N,每个字符串的长度不超过100。长度小于8的字符串用零补足,长度大于等于8的字符串,按8位位一组的形式不断分割,最后剩余部分用零补足。

输入:

第一行包括一个整数N和N个原始字符串。

输出:

第一行包括分割后的字符串按字典序从小到大排列。

输入示例:

2 abc 123456789

输出示例:

12345678 90000000 abc00000

思路:

这一题比较简单,只需要按照题目的描述做即可。

inp = input().split()
n = int(inp[0])
ls = []
for i in range(1, n+1):string = inp[i]while len(string) > 8:ls.append(string[:8])string = string[8:]ls.append(string + "0"*(8-len(string)))
ls.sort()
print(" ".join(ls))

题目二:蜜蜂采蜜

平原上,一群蜜蜂离开蜂巢采蜜,要连续采集5片花丛后归巢。
已知5片花丛相对蜂巢的坐标,请你帮它们规划一下到访花丛的顺序,以使飞行总距离最短。

输入:

以蜂巢为平面坐标原点的5片花丛A、B、C、D、E的坐标,坐标值为整数。

输出:

从出发到返回蜂巢最短路径的长度取整值,取整办法为舍弃小数点后面的值。

输入示例:

200 0 200 10 200 50 200 30 200 25

输出示例:

456

说明:

样例中的10个数,相邻两个分别为一组,表示一个花丛相对蜂巢的坐标:A(x1, y1)、B(x2, y2)、C(x3, y3)、D(x4, y4)、E(x5, y5),分表代表x1,y1,x2,y2,x3,y3,x4,y4,x5,y5。

说明:

本题实际上是一道旅行商问题(TSP),经典的TSP可以描述为:一个商品推销员要去若干个城市推销商品,该推销员从一个城市出发,需要经过所有城市后,回到出发地。应如何选择行进路线,以使总的行程最短。从图论的角度来看,该问题实质是在一个带权完全无向图中,找一个权值最小的Hamilton回路。由于该问题的可行解是所有顶点的全排列,随着顶点数的增加,会产生组合爆炸,它是一个NP完全问题。

常见的解法有暴力破解、深度优先遍历,动态规划等。

高级的解法有模拟退火算法,遗传算法,粒子群算法、神经网络等

思路一:

暴力破解,求出五片花丛所有可能的到访顺序(全排列),取飞行总距离最短的路径即可。

from math import sqrt, floor
from xmlrpc.client import MAXINT
inp = list(map(int, input().split()))
mincost = MAXINT
ls = [(inp[i*2], inp[i*2+1]) for i in range(5)]
matrix = [[0 for i in range(5)] for j in range(5)]
for i in range(5):for j in range(5):matrix[i][j] = sqrt((ls[i][0]-ls[j][0])**2 + (ls[i][1]-ls[j][1])**2)def Perm(nums, begin, end):global mincost, ls, matrix, pathif begin >= end:cost = 0for i in range(4):cost += matrix[nums[i]][nums[i+1]]cost = cost + sqrt((ls[nums[0]][0]**2) + (ls[nums[0]][1]**2)) + sqrt((ls[nums[-1]][0]**2) + (ls[nums[-1]][1]**2))if cost < mincost:path = numsmincost = costreturnelse:for num in range(begin, end):nums[begin], nums[num] = nums[num], nums[begin]Perm(nums, begin+1, end)nums[begin], nums[num] = nums[num], nums[begin]nums = [i for i in range(5)]
Perm(nums, 0, len(nums))
print(floor(mincost))

思路二:

采用深度优先遍历来寻找最短路径,并在遍历过程中通过不断剪枝来简化求解过程,广义上来讲也是全排列的一种。

from math import sqrt, floor
from xmlrpc.client import MAXINTdef DFS(u, cnt, cost):global mincost, matrix, visitedif cost > mincost:returnif cnt == 6:cost = cost + sqrt((ls[u][0]**2) + (ls[u][1]**2)) + sqrt((ls[0][0]**2) + (ls[0][1]**2))if cost < mincost:mincost = costvisited[u] = 1for v in range(6):if not visited[v]:DFS(v, cnt+1, cost + matrix[u][v])visited[u] = 0inp = list(map(int, input().split()))
mincost = MAXINT
visited = [0 for i in range(6)]
ls = [(inp[i*2], inp[i*2+1]) for i in range(5)]
ls.insert(0, (0, 0))
matrix = [[0 for i in range(6)] for j in range(6)]
for i in range(6):for j in range(6):matrix[i][j] = sqrt((ls[i][0]-ls[j][0])**2 + (ls[i][1]-ls[j][1])**2)DFS(0, 1, 0)
print(floor(mincost))

惨痛经历

因为邮件上写着系统开放时间为18:00-21:00(不同于美团写着笔试时间为16:00-18:00),所以我习惯性得以为笔试时间为三个小时,当我悠哉游哉地把第二题做完返回系统时,笔试已经结束了,因此只提交了第一题,直接人麻了。。。所以,各位小伙伴无论是在比赛还是在测试,一定先看好时间!!!当然,对于秒AK的大佬来说,时间根本不是事,那就当我没说。

凉梦空间

欢迎你进入我的个人博客网站参观交流:https://www.liangmeng.xyz

荣耀笔试题_20220412相关推荐

  1. 荣耀笔试题(2021/8/21)

    第一题: 小明装修需要n(1<=n<=200)颗钉子,但是五金店没有散装钉子卖,只有两种盒装包装的,一种包装4颗,一种包装有9颗,请问小明最少需要买多少盒钉子才能刚好买够n颗? impor ...

  2. 2023 数字IC设计秋招复盘——数十家公司笔试题、面试实录

    最新更新日期:2023.04.02 1 目录/更新记录 1.1 笔试复盘篇 按笔试的时间顺序进行更新.备注:笔试时间可能会与实际时间有偏差. 序号 公司 岗位 链接 笔试时间 发布时间 0 禾赛 FP ...

  3. Erlang服务端开发(无需Erlang基础)笔试题

    某游戏公司Erlang服务端开发(无需Erlang基础)笔试题,面向C/C++程序员 一.用你熟悉的语言解决下面的问题. 1.反转输出字符串,并移除其中的空格. 2.快速的判断一个数是否素数的方法. ...

  4. 永成科技C++笔试题

    最后几个题有点难度,在这里说一下: 永成科技C++笔试题 2013-11-19 1.将1亿以内的质数存到一个超级大的数组中,用算法如何实现? 使用"筛法"求解1亿以内的质数的程序的 ...

  5. 华为笔试题---明明的随机数

    题目 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤1000),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着 ...

  6. 转贴:雅虎公司C#笔试题,看看你能解答多少

    这是刚在在网上看到了,觉得这些题目出得真不错,能考出一个程序员的基本功.所以先发在这里,做个备份,以后慢慢来做(偶好像只能免强及格哦,呵呵,关于网络的题目太多了,偶不太熟啊)- ----------- ...

  7. 我是主考官:两次弃用的变态笔试题

    故事(3):两次弃用的变态笔试题 电话的沟通虽然不可能对一个程序员作全面的了解,但基本上能有一个比较概括的判断,这也许就是所谓的第一印象吧!     通过电话的初步沟通我对来面试的程序员已经有了初步的 ...

  8. java异常return笔试题_Java笔试面试总结—try、catch、finally语句中有return 的各类情况...

    前言 之前在刷笔试题和面试的时候经常会遇到或者被问到 try-catch-finally 语法块的执行顺序等问题,今天就抽空整理了一下这个知识点,然后记录下来. 正文 本篇文章主要是通过举例的方式来阐 ...

  9. 迭代器笔试题,看看你会不会?

    有位小朋友最近正在为年后换工作做准备,但是遇到一个问题,觉得很不可思议的一道笔试题.然后我把这道题发到技术群里,发现很多人居然不知道,很多都是连蒙带猜的说.感觉很有必要写一篇文章来说道说道. 有位小朋 ...

最新文章

  1. centos7-同步时间
  2. 安卓html5桌面提醒,HTML5桌面通知提示功能的实现
  3. 深度好文:Linux操作系统内存
  4. 人脸检测与识别年度进展概述
  5. 面向Tableau开发人员的Python简要介绍(第4部分)
  6. Spring Cloud Alibaba 雪崩效应和容错解决方案
  7. 三星Galaxy S20系列机模上手视频曝光:不再单独设置Bixby按键
  8. php框架进入命令行,swoole为何要用命令行来启动_PHP开发框架教程
  9. 他山之石:加载图片的一个小问题
  10. 天涯明月刀手游服务器维护中,《天涯明月刀手游》12月17日服务器维护更新公告...
  11. visio2013激活教程
  12. vue地址选择插件V - Distpicker
  13. L298N电机驱动模块的接线使用与代码实现
  14. Ink脚本语言学习笔记(一)
  15. 两台计算机直连怎么写ip,两台电脑直连(两台电脑用一条网线连接)
  16. 最优投资组合的确定matlab,最优投资组合问题的数学模型
  17. 计算机 不识u盘,电脑不认u盘了怎么办?
  18. 【MAX7800实现KWS20 demo演示】
  19. 5分钟学废携程出品配置中心阿波罗的原理与搭建
  20. 淘宝分布式数据库是如何实现高可用的

热门文章

  1. ExpRe[6] 云服务器[0] 基础使用,ssh连接
  2. VMware 虚拟机如何连接网络
  3. 项目管理之质量检查点
  4. 北京朝阳区中央空调维保-维保规定
  5. 【12306】登录流程及接口说明
  6. 2021河北省专接本计算机专业学校,2021河北专接本能接哪些学校?
  7. 云HIS源码 大型医院java云HIS系统源码 云his系统
  8. linux中运行appimage文件
  9. 关于iTOP安装过程中报错的问题
  10. 本机搭建RTMP服务器--------35