腾讯2017秋招笔试编程题:游戏任务标记 [python]
来源:互联网 发布:键盘记录软件手机 编辑:程序博客网 时间:2024/06/13 15:17
'''
[编程题] 游戏任务标记
时间限制:1秒
空间限制:32768K
游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,
任务ID范围[1,1024]。请用32个unsigned int类型来记录着1024个任务是否已经完成。初始状态都是未完成。
输入两个参数,都是任务ID,需要设置第一个ID的任务为已经完成;并检查第二个ID的任务是否已经完成。
输出一个参数,如果第二个ID的任务已经完成输出1,如果未完成输出0。如果第一或第二个ID不在[1,1024]范围,则输出-1。
输入描述:
输入包括一行,两个整数表示任务ID.
输出描述:
输出是否完成
输入例子1:
1024 1024
输出例子1:
1
'''
'''
解题思路:设置权重
本题的难点使用32个unsigned int类型来记录着1024个任务是否已经完成,也就是说每一个无符号整型要可以代表32个任务是否完成。
而无符号整型的范围是0~2^32-1。
如果我们把1024个任务按顺序平均分成32个小组,每个小组就有32个任务。
我们给每个小组内的32个任务按顺序赋予权值,权值的大小为 2^0,2^1...2^31。
如果该小组内的第1,3,7个任务完成,其余任务没完成,则记录该组任务完成情况的无符号数为 2^0 + 2^2 + 2^6。
按照这个思路是可以实现给定任务id来判断任务完成情况的,具体实现比较复杂,我这里不赘述,
当然,如果只需完成这道题目,不必考虑地如此复杂,对上述思路进行适当简化就能做出来了。
'''
'''
代码运行结果:
答案正确:恭喜!您提交的程序通过了所有的测试用例
[编程题] 游戏任务标记
时间限制:1秒
空间限制:32768K
游戏里面有很多各式各样的任务,其中有一种任务玩家只能做一次,这类任务一共有1024个,
任务ID范围[1,1024]。请用32个unsigned int类型来记录着1024个任务是否已经完成。初始状态都是未完成。
输入两个参数,都是任务ID,需要设置第一个ID的任务为已经完成;并检查第二个ID的任务是否已经完成。
输出一个参数,如果第二个ID的任务已经完成输出1,如果未完成输出0。如果第一或第二个ID不在[1,1024]范围,则输出-1。
输入描述:
输入包括一行,两个整数表示任务ID.
输出描述:
输出是否完成
输入例子1:
1024 1024
输出例子1:
1
'''
'''
解题思路:设置权重
本题的难点使用32个unsigned int类型来记录着1024个任务是否已经完成,也就是说每一个无符号整型要可以代表32个任务是否完成。
而无符号整型的范围是0~2^32-1。
如果我们把1024个任务按顺序平均分成32个小组,每个小组就有32个任务。
我们给每个小组内的32个任务按顺序赋予权值,权值的大小为 2^0,2^1...2^31。
如果该小组内的第1,3,7个任务完成,其余任务没完成,则记录该组任务完成情况的无符号数为 2^0 + 2^2 + 2^6。
按照这个思路是可以实现给定任务id来判断任务完成情况的,具体实现比较复杂,我这里不赘述,
当然,如果只需完成这道题目,不必考虑地如此复杂,对上述思路进行适当简化就能做出来了。
'''
'''
代码运行结果:
答案正确:恭喜!您提交的程序通过了所有的测试用例
'''
id1, id2 = [int(each) for each in input().split()]tasks = [0]*32weights = [2**i for i in range(32)]if id1 > 1024 or id2 > 1024: print(-1)else: id1 -= 1 id1_remain = id1 % 32 id1_pos = id1 // 32 tasks[id1_pos] = weights[id1_remain] id2 -= 1 id2_remain = id2 % 32 id2_pos = id2 // 32 if tasks[id2_pos] == weights[id2_remain]: print(1) else: print(0)
阅读全文
0 0
- 腾讯2017秋招笔试编程题--游戏任务标记
- 腾讯2017秋招笔试编程题:游戏任务标记 [python]
- 腾讯2017秋招笔试编程题(二)----游戏任务标记
- 腾讯2017[编程题] 游戏任务标记
- 腾讯2017秋招笔试编程题:编码 [python]
- 腾讯2017秋招笔试编程题:素数对 [python]
- 腾讯2017秋招笔试编程题:geohash [python]
- 腾讯2017秋招笔试编程题
- 腾讯2017秋招笔试编程题
- 腾讯2017秋招笔试编程题
- 腾讯2017秋招编程笔试题
- 腾讯2017秋招笔试编程题
- 腾讯2017秋招笔试编程题
- 腾讯秋招上机题目游戏任务标记C++实现
- 【2017腾讯题】游戏任务标记
- 腾讯2017秋招笔试编程
- 腾讯2016秋招笔试编程题
- 腾讯2017秋招笔试编程题--编码
- leetcode: 99. Recover Binary Search Tree
- springcloud(十):服务网关zuul
- 学习CMake,先保存下
- 进阶丨如何让你的数据分析更加简洁专业
- 获取到HTML里面的值
- 腾讯2017秋招笔试编程题:游戏任务标记 [python]
- leetcode: 100. Same Tree
- 桑基图(sankey)的绘制
- NorFlash、NandFlash、eMMC比较区别
- Dubbo-容错机制
- 使用容器部署静态(HTML)网站
- 波段与趋势
- 2017第十八届成都家具展 (中国西部国际博览城)会刊(参展商名录)
- 中小型互联网公司微服务实践-经验和教训