仅供学习交流用,侵删。 只关注编程题的同学,请点击目录直接跳转。

目录

单选题&多选题节选

编程题1

编程题2

编程题3

问答题(二选一)


单选题节选

有多选和单选,有点恶心的。。不确定答案,仅截图记录了。

编程题1

第一题解答:

a = []
n = int(input())
m = int(input())
for i in range(n):a.append(int(input()))kmin = max(a)for i in range(m):a[a.index(min(a))] += 1print(max(a), kmin + m)

编程题2

先手写了几个情况,从6、7、8、9写了4个,发现推导过程中,蕴含着一个迭代的过程,所以考虑找规律。最终归纳为一个等比数列求和的问题:


n = int(input())if n>=6:print( 2**(n-6)%666666666 )
else:print(0)

然后神奇地发现case100%,通过了。。。

编程题3

此题原型为Codeforces 558C Amr and Chemistry,可网上搜索相关答案。

下面给出2种解答:

第一种case通过率80%:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Thu Apr 11 13:49:13 2019
第三题
试剂x2或者/2,最少几次使得试剂量相等
@author: youxinlin
"""'''
# input
3
4 8 2
# output
2# input
3
3 5 6
# output
5
'''read = lambda: map(int, input().split())
n = int(input())
a = list(read())m = max(a) + 1 #最大剂量+5cnt = [0] * m print('ori cnt = ',cnt)step = [0] * m
print('ori step = ',step)was = [-1] * m  #几种档位
print('ori was = ',was)
print(' ')for i in range(n):x = a[i]q = [(x, 0)]st = 0while st < len(q):x, y = q[st] #数值,步数st += 1if x >= m or was[x] == i: #若翻倍后的剂量大于一开始时的【最大剂量】,或,没有更多选择了(即q中之后其他的备选方案中剂量已经是达到过的x了)# 不让最终方案的剂量大于一开始最多剂量的那瓶,减少运算量。因为若选择往上翻倍,必然存在最小公倍数,则无止境。continuewas[x] = i  #was的索引表示剂量档位,第i瓶试剂达到了这个档位,则置该档位为该瓶标号i;#  如果没有瓶子达到过某个档位 则该位一直是-1# 所以 was数组记录着情况print('was = ',was)       step[x] += y # 某瓶达到x档位所需要的步数。( 不用st,保证是最少的步数!)print('step = ',step)        cnt[x] += 1 #计数。某瓶试剂量达到x档位后,这个档位被达到的次数+1。print('cnt = ',cnt)q.append((x * 2, y + 1)) #q存放方案,每次操作都可以乘以2或者除以2。x表示剂量,y表示第几次操作q.append((x // 2, y + 1))print('q =',q)print('\n')result = min(step[x] for x in range(m) if cnt[x] == n)  #当 cnt[x]==n,表示x这个档位同时有n瓶达到过,即符合所有瓶子的剂量相等的条件
# 即可以让每瓶的剂量都 等于 x ,从而满足要求
# step[x] 记录着 让每瓶剂量都等于x所需要的最小操作次数
# 再从step[x]中选出最小值 即题目所求最小值
print(result)

这种方案优先选择往下降倍的方案的原因是:假设有两瓶试剂,一开始剂量为a,b。

往上翻倍达到二者剂量最小公倍数需要的操作次数是:

log2(b)+log2(a),if a,b互质

log2(b/a),if b能整除a,即b为最小公倍数

往下除以2达到二者剂量的最大公约数需要的操作次数是:

log2(a)+log2(b),if a,b互质

log2(b/a),if b能整除a,即a是最大公约数

故二者操作次数相等,只需考虑往下降倍的方案,使得穷举方案时可以收敛到剂量为0,在有限步骤内完成。

第二种方案是网上别人作答方案:

#第三题python3:(更快版本)
def main():input()aa = list(map(int, input().split()))le, l = max(aa).bit_length(), []for i, a in enumerate(aa):j = le - a.bit_length()aa[i] = a << jl.append(j)mi, ma = min(aa), max(aa)a = mask = (1 << le) - 1if mi == ma:while mi == mi & a:mask = aa &= a << 1else:while mi != ma:mask &= mask << 1mi >>= 1ma >>= 1while not (mi & 1):mask &= mask << 1mi >>= 1mask ^= (1 << le) - 1le = mask.bit_length() + 1res = [0] * lecache = {}for a, i in zip(aa, l):a &= maskif a:a = a.bit_length()tmp = cache.get((i, a))if tmp is None:cache[i, a] = tmp = [0] * leif a:base, baseidx = a - i, le - a - 1else:base, baseidx = 0, le - i - 1i, j = baseidx, basewhile i:i -= 1j += 1tmp[i] = ji, j = baseidx, basewhile i < le:tmp[i] = ji += 1j += 1for i, j in enumerate(tmp):res[i] += jprint(min(res))if __name__ == '__main__':main()

问答题(二选一)

选答了第二题。

正好最近看了一些稀少目标检测的文献:Schwartz E , Karlinsky L , Shtok J , et al. RepMet: Representative-based metric learning for classification and one-shot object detection[J]. 2018.

这篇文章里很详实地介绍了少量样本训练和分类识别问题的related work,通过阅读相关工作,可以大概了解一下现有的方法。另外,作者也基于DML提出了新的网络模型用于解决这个问题。

用DML来处理稀少样本问题是个不错的途径。推荐一本外文书:Metric Learning: A Survey。

看完大概也能讲出一些东西,这样开放题,言之有理即可吧。

2020届实习招商银行信用卡笔试题(IT算法方向)python版(同2019春招笔试题)相关推荐

  1. 招银网络科技java春招二面_招银网络科技 2019春招笔试题复盘

    因本人刚开始写博客,学识经验有限,如有不正之处望读者指正,不胜感激:也望借此平台留下学习笔记以温故而知新.这篇博客是复盘回忆招银网络科技2019春招的笔试试题类型,相关岗位:算法工程师. 简要介绍:时 ...

  2. 2019春招面试题总结-03

    public class B{public static void main(String[] args){int i = 12;System.out.println(i+=i-=i*=i);} } ...

  3. 海康威视2019年校园招聘内推码(2019届春招、2020届实习/秋招)

    官宣拥有内推码的同学,同等条件择优录取,在每一个环节都会更加具有优势 海康威视2019年校园招聘内推码(2019届春招.2020届实习/秋招): 5S3QAI (最好复制内推码,不要写错了,写错了可能 ...

  4. 意淫系列-2018美图春招笔试题

    2018美图春招笔试题 只是试水,没有A类会议拒绝实习. 题不难,陪女朋友吃饭去了,然后就没怎么时间,只是看了下题. 题型:选择题和编程题,选择题25道,涉及数据结构,C,Python,C++,图像, ...

  5. 中国联通智网创新中心2021春招笔试题

    中国联通智网创新中心2021春招笔试题 这个智网中心是2020年5月新建立的,之前没听过.然后这次报名参加了笔试,实际上这是第二次笔试,第一次题很难(对我来说)然后非常惨,考完之后人家将近两个礼拜没通 ...

  6. 2018年京东春招笔试题

    2018年京东春招笔试题(2018.04.09) 题目一 整数分解 题目描述 小Q的数学老师给小Q一个整数N,问小Q能否将W分解为两个整数X和Y相乘,并且满足X为奇数,Y为偶数.即能否找到奇数X和偶数 ...

  7. 小鹏汽车2019春招自动驾驶中心研发笔试题(部分题解)

    小鹏汽车2019春招自动驾驶中心研发笔试题(部分题解) 链接:https://www.nowcoder.com/questionTerminal/ebd81731da404c0f9505c8a933c ...

  8. 京东2019春招Java开发类笔试题

    京东2019春招Java开发类笔试题 1. (单选题) 在对问题的解空间树进行搜索的方法中,一个结点有多次机会成为活结点的是 ( B ) A. 动态规划 B. 回溯法 C. 分支限界法 D. 回溯法和 ...

  9. 2018年网易游戏春招笔试题

    2018年网易游戏春招笔试题(2018.04.16) 题目一 生产线问题 题目描述 作为一条生产线的负责人,你手头上有N个订单,你需要通过这条生产线去处理这些订单.每个订单可以用两个属性去描述:耗时p ...

  10. 数据、运营相关试题(一)【牛客网:京东2019春招商务与运营类试卷】

    试题来源:牛客网 试题答案仅供参考.其中前半部分偏向商务类试题,后半部分偏向运营类试题. 数据.运营相关内容,一起好好学习,天天向上吧! 数据.运营相关案例问答题(一)[牛客网:数据分析试题广场] 数 ...

最新文章

  1. python金融代码_Python2爬虫代码之获取金融品种行情数据
  2. C语言各种变量的初始化
  3. 计算机核心配件是什么,计算机的核心是什么
  4. C++ static 用法
  5. qt4.7 mysql_详解Qt 4.7编译和访问Mysql驱动
  6. mysql al32utf8_Oracle 11g更改字符集AL32UTF8为ZHS16GBK
  7. centos安装python3.4 pip3
  8. PowerTip of the Day-Finding Invalid Aliases
  9. CTS(8)---Android Google认证 -CTS认证问题小结
  10. 1.material组件的安装及其使用
  11. mac显示网速_Mac系统怎么查看测试网速
  12. php常用标签,PHP 过滤常用标签的正则表达式
  13. PTA题---求两个有序序列中位数所体现的思想。
  14. 关于stm32f407搭载wifi模块_华为智能体脂秤WiFi版体验:家庭标配的智能家居
  15. IntelliJ IDEA最新版官方支持汉化
  16. python sendkeys用法_sendkeys用法详解
  17. 学习记录——微信小程序查询的两种方法
  18. ubuntu 什么是xinetd
  19. Docker 搭建Hfish蜜罐平台
  20. jk触发器改为四进制_数字电路学习笔记(十):更多锁存器和触发器

热门文章

  1. FPGA 等效门数的计算方法
  2. bzoj4816: [Sdoi2017]数字表格
  3. 2009年毕业设计题目:网上自助装机系统的设计与实现
  4. UI设计师需要掌握哪些设计软件?
  5. 十大重要IT公司排名 -2009
  6. 计算机多媒体中的媒体种类,多媒体计算机中的媒体信息是指什么
  7. allgro pcb铜皮编辑_Allegro设计PCB基础知识:快捷键设置、铜皮处理、DC-DC布局布线、电源分割等等...
  8. 推荐一款安卓手机一键Root工具
  9. 注意函数定义和函数调用的顺序
  10. pandas的一些理解