牛博网 京东2017校招编程题 python解答
来源:互联网 发布:java随机数生成器 编辑:程序博客网 时间:2024/05/17 15:35
保卫方案
战争游戏的至关重要环节就要到来了,这次的结果将决定王国的生死存亡,小B负责首都的防卫工作。首都位于一个四面环山的盆地中,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设置一个观察哨,日夜不停的瞭望周围发生的情况。 一旦发生外地入侵事件,山顶上的岗哨将点燃烽烟,若两个岗哨所在的山峰之间没有更高的山峰遮挡且两者之间有相连通路,则岗哨可以观察到另一个山峰上的烽烟是否点燃。由于小山处于环上,任意两个小山之间存在两个不同的连接通路。满足上述不遮挡的条件下,一座山峰上岗哨点燃的烽烟至少可以通过一条通路被另一端观察到。对于任意相邻的岗哨,一端的岗哨一定可以发现一端点燃的烽烟。 小B设计的这种保卫方案的一个重要特性是能够观测到对方烽烟的岗哨对的数量,她希望你能够帮她解决这个问题。
输入描述:
输入中有多组测试数据,每一组测试数据的第一行为一个整数n(3<=n<=10^6),为首都周围的小山数量,第二行为n个整数,依次表示为小山的高度h(1<=h<=10^9).
输出描述:
对每组测试数据,在单独的一行中输出能相互观察到的岗哨的对数。
a = int(raw_input())b = raw_input().split(" ")[:a]c = b+bset1 = set()for i in range(a): max1=b[i] max2=0 for z in range(i+1,i+a): if c[z]>=max1: max2 = max1 max1 = c[z] elif c[z]>=max2: max2 = c[z] else:continue if b[i]<max2: break if max1!=b[i] and b[i]==c[z]: continue if z >= a: z = z - a if i > z: set1.add(str(i) + " " + str(z)) if i < z: set1.add(str(z) + " " + str(i))print len(set1)
内存超出,通过率90%
进制均值
尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示为三位数1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,。 小B感兴趣的是,一个数A如果按2到A-1进制表达时,各个位数之和的均值是多少?她希望你能帮她解决这个问题? 所有的计算均基于十进制进行,结果也用十进制表示为不可约简的分数形式。
a = int(raw_input())def call(a,n): sum1 = 0 while a>0: sum1+=a%n a/=n return sum1k=0for i in range(2,a): k+=call(a,i)def gcd(a, b): if b == 0:return a return gcd(b, a % b)n = gcd(k,a-2)print str(k/n)+"/"+str((a-2)/n)
幸运数
战争游戏的至关重要环节就要到来了,这次的结果将决定王国的生死存亡,小B负责首都的防卫工作。首都位于一个四面环山的盆地中,周围的n个小山构成一个环,作为预警措施,小B计划在每个小山上设置一个观察哨,日夜不停的瞭望周围发生的情况。 一旦发生外地入侵事件,山顶上的岗哨将点燃烽烟,若两个岗哨所在的山峰之间没有更高的山峰遮挡且两者之间有相连通路,则岗哨可以观察到另一个山峰上的烽烟是否点燃。由于小山处于环上,任意两个小山之间存在两个不同的连接通路。满足上述不遮挡的条件下,一座山峰上岗哨点燃的烽烟至少可以通过一条通路被另一端观察到。对于任意相邻的岗哨,一端的岗哨一定可以发现一端点燃的烽烟。 小B设计的这种保卫方案的一个重要特性是能够观测到对方烽烟的岗哨对的数量,她希望你能够帮她解决这个问题。
a = int(raw_input())b = raw_input().split(" ")[:a]c = b+bset1 = set()for i in range(a): max1=b[i] max2=0 for z in range(i+1,i+a): if c[z]>=max1: max2 = max1 max1 = c[z] elif c[z]>=max2: max2 = c[z] else:continue if b[i]<max2: break if max1!=b[i] and b[i]==c[z]: continue if z >= a: z = z - a if i > z: set1.add(str(i) + " " + str(z)) if i < z: set1.add(str(z) + " " + str(i))print len(set1)
集合合并
给你两个集合,要求{A} + {B}。 注:同一个集合中不会有两个相同的元素。
对的数量,她希望你能够帮她解决这个问题。
a = raw_input().split(" ")n = int(a[0])m = int(a[1])b = raw_input().split(" ")c = raw_input().split(" ")if n>len(b): n=len(b)if m>len(c): m=len(c)b=b[:n]b=[int(i) for i in b]c=c[:m]c=[int(i) for i in c]print " ".join([str(i) for i in sorted(list(set(b+c)))])
- 牛博网 京东2017校招编程题 python解答
- 2017.9.9网易校招笔试最后一道编程解答
- 网易2017春招编程题:分饼干 [python]
- 网易2017春招编程题:双核处理 [python]
- 网易2017春招编程题:堆砖块 [python]
- 网易2017春招编程题:小易记单词 [python]
- 网易2017春招编程题:工作安排 [python]
- 网易2017春招编程题:消除重复元素 [python]
- 网易2017春招编程题:读棋盘 [python]
- 网易2017春招编程题:调整队形 [python]
- 网易2017春招编程题:赶去公司 [python]
- 网易2017春招编程题:集合 [python]
- 网易2017春招编程题:魔力手环 [python]
- 网易2017秋招编程题:买苹果 [python]
- 网易2017秋招编程题:优雅的点 [python]
- 网易2017秋招编程题:回文序列 [python]
- 网易2017秋招编程题:数字翻转 [python]
- 网易2017秋招编程题:暗黑的字符串 [python]
- [BZOJ3376]geng4512膜你题1:快递配对
- php单列模式
- Android 窗口机制
- 刚研究出来的QT下拉框中复选框的多选
- Linux系统调用__get_thread获取TLS失败导致应用程序奔溃
- 牛博网 京东2017校招编程题 python解答
- 如何将dwg转换为kml
- Python_uwsgi_restart
- selenium使用POI导入导出excel
- 深圳中科爱讯科技有限公司
- iOS开发之ReactiveCocoa框架(RAC)第四篇构建一个信号量
- Wunder Fund Round 2016 (Div. 1 + Div. 2 combined) C. Constellation(思维 简单几何)
- You can't specify target table 'item' for update in FROM clause
- 常用设计模式之抽象工厂模式