ccf 201712-2 游戏(Python实现)
一、原题
问题描述
试题编号: |
201712-2 |
试题名称: |
游戏 |
时间限制: |
1.0s |
内存限制: |
256.0MB |
问题描述: |
问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向。 给定n和k,请问最后获胜的小朋友编号为多少? 输入格式 输入一行,包括两个整数n和k,意义如题目所述。 输出格式 输出一行,包含一个整数,表示获胜的小朋友编号。 样例输入 5 2 样例输出 3 样例输入 7 3 样例输出 4 数据规模和约定 对于所有评测用例,1 ≤ n ≤ 1000,1 ≤ k ≤ 9。 |
二、题解
用到两个列表和一个计数器。计数器用来记录当前小朋友的报数。第一个列表用来装没有报数的小孩。第二个列表用来装报数并且不是k的整数倍的小孩。当第一个列表循环完一遍以后,把第二个列表重新复制给第一个列表。然后第二个列表置空。然后循环第二遍。当第一个列表长度是1时停止循环。然后输出当前小孩的序号。
注意:
- 用range生成时,Python3是生成一个迭代器。所以需要用list来实际在内存生成这个列表。然后是这个列表的每个元素对应的小孩应该是这个数字加1(或者range生成列表从1开始到n+1)才是小孩的真正序号。
- 题中有两点儿要求:一是小朋友数到k时淘汰;二是小朋友报数的个位数为k时小朋友也被淘汰。
三、代码
- 以下提交20分:
L = list(map(int,input().split()))
n, k = L[0], L[1]
li = list(range(n))
c = 1
while len(li) > 1:
li1 = []
for i in range(len(li)):
if c%k==0:
c += 1
else:
li1.append(li[i])
c += 1
li = li1[:]
print(li[0]+1)
- 修改后提交得30分:
L = list(input().split())
n, k = int(L[0]), int(L[1])
li = list(range(1,n+1))
c = 1
while len(li) > 1:
li1 = [] #之前没有考虑到k=1
if k == 1:
li1.append(li[-1])
li = li1[:]
break
for i in range(len(li)):
if c%k==0:
c += 1
else:
li1.append(li[i])
c += 1
li = li1[:]
print(li[0])
- 认真审题以后发现还有报数的个位数为K时也会淘汰。所以更改如下:
L = list(input().split())
n, k = int(L[0]), int(L[1])
li = list(range(1,n+1))
c = 1
while len(li) > 1:
li1 = [] #之前没有考虑到k=1
if k == 1:
li1.append(li[-1])
li = li1[:]
break
for i in range(len(li)):
#之前没有考虑个位数为k
if (c%k==0) or (c%10==k):
c += 1
else:
li1.append(li[i])
c += 1
li = li1[:]
print(li[0])
ccf 201712-2 游戏(Python实现)的更多相关文章
- CCF CSP 201604-4 游戏
CCF计算机职业资格认证考试题解系列文章为meelo原创,请务必以链接形式注明本文地址 CCF CSP 201604-4 游戏 问题描述 小明在玩一个电脑游戏,游戏在一个n×m的方格图上进行,小明控制 ...
- CCF CSP 201712-2 游戏
题目链接:http://118.190.20.162/view.page?gpid=T67 问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐 ...
- 一个简单的猜大小的小游戏 python
初学python,用python写了一个简单的猜大小的小游戏 #!/usr/bin/env python #-*- coding:utf-8 -*- print "------------- ...
- 猜数字游戏-python
题目: 用python写一个猜数字的游戏,游戏规则如下: 1.由一个人随机写一个整数1-99(如:21) 2.一群小伙伴轮流猜数字,如第一个人猜一个数(如:48),则缩小范围至(1-48) 3.如第二 ...
- ccf 201803-1 跳一跳(Python实现)
一.原题 问题描述 试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化 ...
- 洛谷P1080 国王游戏 python解法 - 高精 贪心 排序
洛谷的题目实在是裹脚布 还编的像童话 这题要 "使得获得奖赏最多的大臣,所获奖赏尽可能的少." 看了半天都觉得不像人话 总算理解后 简单说题目的意思就是 根据既定的运算规则 如何排 ...
- 蒙提霍尔游戏 python 模拟
本文使用蒙特卡罗方法验证蒙提霍尔游戏的结论. 以下代码,本人原创! 完整代码 import random # 蒙提霍尔游戏 def play_game(strategy='nonchange'): # ...
- ccf消除类游戏
问题描述 消除类游戏是深受大众欢迎的一种游戏,游戏在一个包含有n行m列的游戏棋盘上进行,棋盘的每一行每一列的方格上放着一个有颜色的棋子,当一行或一列上有连续三个或更多的相同颜色的棋子时,这些棋子都被消 ...
- CCF认证201712-2游戏
问题描述 有n个小朋友围成一圈玩游戏,小朋友从1至n编号,2号小朋友坐在1号小朋友的顺时针方向,3号小朋友坐在2号小朋友的顺时针方向,……,1号小朋友坐在n号小朋友的顺时针方向. 游戏开始,从1号小朋 ...
随机推荐
- CC06:像素翻转
题目 有一副由NxN矩阵表示的图像,这里每个像素用一个int表示,请编写一个算法,在不占用额外内存空间的情况下(即不使用缓存矩阵),将图像顺时针旋转90度. 给定一个NxN的矩阵,和矩阵的阶数N,请返 ...
- Codeforces #564div2 E1(记忆化搜索)
虽然不是正解但毕竟自己做出来了还是记下来吧- 对每个人分别dfs得到其期望,某两维的组合情况有限所以Hash一下避免了MLE. #include <cstdio> #include < ...
- net Core 入门实战
Asp.net Core 入门实战 Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个源码合集,方便一次性Clone 目录 快速入门 安 ...
- android pm命令
把网络apk下载到盒子或者其他安卓设备上 1.adb push windows的原路径 android设备的路径 2.pm install android设备的路径 注意:这里pm命令是安卓设备才有的 ...
- HTML5 JSDOM
1,HTML5 新语义化标签 - nav -- 表示导航 - header -- 表示页眉 -- 头部 - section -- 表示区块 -- 类似于div - main -- 文档主要内容 - a ...
- jsp-简单的猜数小游戏
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"% ...
- BootStrap Validator 版本差异问题导致的submitHandler失效问题的解决方法
最近一直在做互金平台,做到后台提交表单的时候出现验证提交数据一直没有提交的问题.于是百度了一下.果然是版本问题造成的.幸好找到了问题所在.我一直仿照的是东钿原微信平台的做法,但是使用byond的后台框 ...
- <Android HAL 之路> HAL 简介
HAL层概述 名称: HAL, Hardware Abstracting Layer,中文名字:硬件抽象层. 作用:对Linux内核驱动程序的封装,向上提供接口,屏蔽低层的实现细节.向上衔接Andro ...
- 一点对原生HTTP请求的理解与总结
全手打原创,转载请标明出处:https://www.cnblogs.com/dreamsqin/p/10946165.html,多谢,=.=~ 术语 HTTP:超文本传输协议,规定Web浏览器如何从W ...
- Codeforces 724 G Xor-matic Number of the Graph 线性基+DFS
G. Xor-matic Number of the Graph http://codeforces.com/problemset/problem/724/G 题意:给你一张无向图.定义一个无序三元组 ...