递归--A,B选同事,每次选1或2个,判断A是否胜利
来源:互联网 发布:增视能弱视训练软件 编辑:程序博客网 时间:2024/05/17 01:17
题目描述:
公司组织团建活动,其中一个游戏有A、B两名参赛者参加,游戏规则如下:有m个不同身高的同事站成一排,A、B两个参赛者依次从左到右选择一名或者两名同时出列(A先开始),直到所有同时都被选择完位置,最终计算两名参赛者所选同事的身高总和,如果A选的同时身高综合大于B,则A胜利,否则,B胜利。
输入:同时身高序列,以空格分割
输出:A胜利则True,否则False
Python代码实现:
#!/usr/bin/env python# -*- coding:utf-8 -*- # @Author:lthan# @Email :xiaohan809@qq.com# @Time :2017/9/13 21:47import sysm_list = [float(val) for val in sys.stdin.readline().strip().split(" ")]total_count = [0] * 2def get_mypeople(index, m_list,which,total_count): #轮到自己的时候每个人都很贪婪,如果剩余员工少于2个,全部带走 if len(m_list) <= index + 2: for i in range(index,len(m_list)): total_count[which] += m_list[i] return total_count else: # 拿一个 total_count1 = total_count[:] total_count1[which] += m_list[index] total_count1 = get_mypeople(index+1,m_list,(which+1)%2,total_count1) #拿两个 total_count2 = total_count[:] total_count2[which] += m_list[index] total_count2[which] += m_list[index+1] total_count2 = get_mypeople(index+2,m_list,(which+1)%2,total_count2) #取最终最大的那个拿法 if total_count1[which] > total_count2[which]: return total_count1 else: return total_count2counts = get_mypeople(0, m_list, 0,total_count)print(counts[0] > counts[1])
阅读全文
0 0
- 递归--A,B选同事,每次选1或2个,判断A是否胜利
- 判断树a是否是树b的子树--递归递归递归
- 4-2判断字符串a是否以字符串b开头或结尾
- 牛客编程1-给定区间[-2^31, 2^31]内的3个整数A、B和C,请判断A+B是否大于C。
- 判断是否能进入重点大学:满足条件1、语数外全A,其他6门只有1个C,四个A。2、语数外有一个B两个A,其他6门6个A'
- NOJ 1303 判断a+b是否溢出
- 判断B是否A的子结构
- 请判断A+B是否大于C。
- 【Codeforces Round 272 (Div 2)A】【贪心 暴力 水题】Dreamoon and Stairs n个台阶每次走一步或两步是否有步数恰好为m倍数
- 给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
- 给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
- 给定区间[-2^31, 2^31]内的3个整数A、B和C,请判断A+B是否大于C。
- 给定区间[-2的31次方, 2的31次方]内的3个整数A、B和C,请判断A+B是否大于C。
- 2个二叉树A、B,树的每个节点上都有一个整数值。如何判断A与B是否其中一个是另一个的子树?
- 给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。
- 如何判断字符串A是否以字符串B开头或结尾
- Python高级编程-如何判断字符串a是否是以字符串b开头或结尾?
- python 4-2 如何判断字符串a是否以字符串b开头或结尾str.startswith/os.stat(filename)/stat.S_IRWXU
- Jmeter将JDBC Request查询结果作为下一个接口参数方法
- ”Amazing Box"智能家居
- Leetcode#26. Remove Duplicates from Sorted Array
- JavaScript中call,apply,bind方法的总结。
- OpenCV 图像处理(直方图均衡化、拉普拉斯算子图像增强、Gamma校正)
- 递归--A,B选同事,每次选1或2个,判断A是否胜利
- 学习记录1(17/09/13于成都)
- 读书笔记-Effective C++
- 关于菜单栏中RecentFiles显示为弹出菜单
- 物理内存和虚拟内存
- 一张图理解用户、角色、权限设计,终极版~
- 今日已刷3题
- fl2440 添加 eeprom驱动,并测试
- MySQL数据库中的order