数据结构_XingYunX(幸运儿)
数据结构_XingYunX(幸运儿)
问题描述
泡泡最近下了个饱了吗 app,这个 app 推出了个坑蒙拐骗的红包系统,只要
花一块钱买张一元抵用券,就有参与 20 元红包的抽奖机会,抽奖界面会实时显
示当前参与抽奖的人数,当参与抽奖人数达到 n 的时候,开奖一次,抽取一名幸
运儿获得 20 元红包。
一次偶然的机会,机智的泡泡偷瞄到了生成幸运儿的源码:每当有人参与抽
奖,这个人就进入队列。
开奖时,每轮淘汰一个人,直到剩下一个人:每轮从第一个人开始,从 1 开
始报数。
1. 如果当前的人报的数不超过队列人数的一半,那么这个人出队,回到队
尾等待下一次报数,下一个人继续报下一个数。
2. 如果当前的人报的数超过了队列人数的一半,那么这个人出局,即未中
奖。这一轮结束,下一轮就从紧接着的下一个人开始重新开始报数。
显然最后会只剩下一个人,这个人就是幸运儿啦~
机智的泡泡马上意识到,当 n 已知的时候,幸运儿其实可以预知到是第几个
参与抽奖的人。
机智的泡泡马上又意识到,假设第 x 个参与抽奖的人是幸运儿,那么只要看
到屏幕上显示的人数达到 x-1 的时候参与抽奖,就能成为那个幸运儿啦~
机智的泡泡马上从小道消息得知了 n,正试图预知出 x 的值。
机智的泡泡马上把锅甩给了你。
★数据输入
输入第一行为一个正整数 n。
对于 50%的数据, 1<=n<=1000;
对于 80%的数据, 1<=n<=6000;
对于 100%的数据, 1<=n<=1000000000;
★数据输出
输出 x。
| 输入示例 | 输出示例 |
| 5 | 5 |
| 输入示例 | 输出示例 |
| 6 | 3 |
解题思路
思路1:通过观察多组数据,若输入为奇数,输出为本身;若输入为偶数,输出为一半
思路2(未验证):若输入为奇数n,每次排除掉的数为 (上个排除掉的数+(n/2+1))的结果对n取模
若输入为偶数n,排除掉的数为 ( (上个排除掉的数+(n/2+1)) 或 (上个排除掉的数+(n/2)) 再取模) 轮流进行
code
#include <stdio.h> int main()
{
int num;
scanf("%d",&num);
if(num%==)
printf("%d\n",num>>);
else
printf("%d\n",num); return ;
}
/*
1 2 3 4 5
3 1 4 2 5
+3 1 2 3 4 5 6
4 1 5 2 6 3
+4 +3 +4 +3 +4 +3 1 2 3 4
3 1 4 2 1 2 3 4 5 6 7
4 1 5 2 6 3 7 num奇数->num
num偶数->num/2
*/
数据结构_XingYunX(幸运儿)的更多相关文章
- 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)
前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...
- 一起学 Java(三) 集合框架、数据结构、泛型
一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...
- 深入浅出Redis-redis底层数据结构(上)
1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...
- 算法与数据结构(十五) 归并排序(Swift 3.0版)
上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容.归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其拆分的足够小.当拆分的数组中只有一个元素 ...
- 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)
本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...
- 算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找
今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找 ...
- 算法与数据结构(八) AOV网的关键路径
上篇博客我们介绍了AOV网的拓扑序列,请参考<数据结构(七) AOV网的拓扑排序(Swift面向对象版)>.拓扑序列中包括项目的每个结点,沿着拓扑序列将项目进行下去是肯定可以将项目完成的, ...
- 算法与数据结构(七) AOV网的拓扑排序
今天博客的内容依然与图有关,今天博客的主题是关于拓扑排序的.拓扑排序是基于AOV网的,关于AOV网的概念,我想引用下方这句话来介绍: AOV网:在现代化管理中,人们常用有向图来描述和分析一项工程的计划 ...
- 掌握javascript中的最基础数据结构-----数组
这是一篇<数据结构与算法javascript描述>的读书笔记.主要梳理了关于数组的知识.部分内容及源码来自原作. 书中第一章介绍了如何配置javascript运行环境:javascript ...
随机推荐
- ProjectEuler654
我,ycl:BM是什么早就忘了! 毕老爷:那你们可以做一做这道题练练BM板子啊. 传送门 //Achen #include<bits/stdc++.h> #define For(i,a,b ...
- Linux下系统监控工具nmon使用
Mongodb安装在Centos7或以上的版本,对于系统的监控方法如下: 1.从\\10.10.10.1\ShareDoc\User\Zchen\linux系统监控下下载2个工具 nmon16e_mp ...
- Maven里头的pom.xml配置详解
正常的pom配置文件如下所示: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http ...
- Eclipse jar包源码下载
在使用intelliJ的时候,可以在IDE中直接下载jar包: Eclipse也可以!就是插件Java Source Attacher 这个插件是放在eclipse安装目录的dropins目录下.重启 ...
- MySQL 查询数据表里面时间字段为今天添加的计数
一: 下面这条语句查出来的count值 . 查询类型ID(category_id)为18的,今天插入的数据数, created_on: 为数据表中一字段 datetime类型, 记录此条数据添加的时 ...
- (转)C# 特性(Attribute)详细介绍
本文转载自:http://www.cnblogs.com/luckdv/articles/1682488.html 1.什么是Atrribute 首先,我们肯定Attribute是一个类,下面是msd ...
- java代码异常普通的====
总结:对于各种流类, package com.da; //包括运行异常,和非运行异常 import java.io.*; public class ryl { public static void m ...
- 渗透测试框架-Fsociety
下载项目并赋予权限,打开 ┌─[root@sch01ar]─[/sch01ar] └──╼ #git clone https://github.com/Manisso/fsociety ┌─[root ...
- paramiko远程
安装paramiko后,看下面例子: 复制代码代码如下: import paramiko #设置ssh连接的远程主机地址和端口t=paramiko.Transport((ip,port))#设置登录名 ...
- leetcode589
树的先序遍历,使用递归实现. class Solution { public: vector<Node> Tree; void preTree(Node node) { Tree.push ...