选举游戏(京东2016实习生真题)
来源:互联网 发布:python sftp 断点续传 编辑:程序博客网 时间:2024/05/20 05:44
题目描述小东和其他小朋友正在玩一个关于选举的游戏。选举是通过投票的方式进行的,得票最多的人将获胜。
小东是编号为1的候选者,此外还有其他的候选者参加选举。根据初步的调查情况,所有准备投票的小朋友都有一定的投票倾向性,小东如果要获得胜利,
必须争取部分准备为其他候选人投票的小朋友。由于小东的资源较为有限,她希望用最小的代价赢得胜利,请你帮忙计算她最少需要争取的选票数。
题目大意:
小东参加选举,候选人数确定,候选人拟得票数确定。他不算土豪,拉票能力有限,让解题者寻找最小代价当选的方法,即要想当选,最少再拉多少票?
解题思路:
1.若所有候选人目前的得票期望都不如小东,此时不用拉票
2.若候选人中最大的得票期望和小东持平,小东随便拉一票即可
3.若小东的得票期望低于候选人中得票期望的最大值:
do
{
候选人中得票期望最大值-1,小东票数+1
} while(小东票数 >= 候选人中得票期望最大值)
if(小东票数 == 候选人中得票期望最大值)
小东目前票数 - 初始票数 + 1
else if(小东票数 > 候选人中得票期望最大值)
用Python实现:
while 1: a = int(input()) lst = map(int,raw_input().split()) xd = lst[0] beginxd = xd lst = lst[1:] if xd>max(lst): print 0 elif xd == max(lst): print 1 else: lst = sorted(lst,reverse=True) while 1: if xd < lst[0]: xd += 1 lst[0] -= 1 lst = sorted(lst, reverse=True) elif xd == lst[0]: print xd - beginxd + 1 break else: print xd - beginxd break结果:
阅读全文
0 0
- 选举游戏(京东2016实习生真题)
- 选举游戏(京东2016实习生真题)
- 京东2016实习生招聘-选举游戏
- 京东2016实习生招聘 C++开发工程师 在线考试(编程题第二题:选举游戏)
- 三子棋(京东2016实习生真题)
- 生日礼物(京东2016实习生真题)
- 备考(京东2016实习生真题)
- 买糖果(京东2016实习生真题)
- 交易清单(京东2016实习生真题)
- 路径规划(京东2016实习生真题)
- 交易清单(京东2016实习生真题)
- 站队(京东2017实习生真题)
- 终结者编程题(京东2017实习生真题)
- 站队编程题(京东2017实习生真题)
- 通过考试(京东2017实习生真题)
- 通过考试(京东2017实习生真题)
- 拍卖(京东2017实习生招聘真题)
- 通过考试(京东2017实习生真题)
- 共同体union
- mysql权限修改
- ISCC 2017 writeup(部分)
- 面向对象编程--继承--类式继承
- tableview实现静态表格(纯代码)组头组尾实现
- 选举游戏(京东2016实习生真题)
- 【HDU1203】I NEED A OFFER!
- hadoop源码解析之hdfs读取数据全流程分析
- 581. Shortest Unsorted Continuous Subarray
- gitignore
- JS继承-构造函数式继承
- 鼠标点击页面中的任意标签,alert该标签的名称和 js实现点击<li>标签弹出其索引值
- 华为 路由器 防火墙设备路由转发原理
- vs2013中配置halcon13的步骤