问题描述

  饱了吗终于发现泡泡破解了它的代码并借此白吃白喝。饱了吗当即改变了自
己的幸运儿生成源码,但是,又被机智的泡泡偷瞄到了,机智的泡泡马上意识到
可能要饭碗不保了:
每当有人参与抽奖,这个人就进入队列。当人数达到 n 的时候开奖一次。
1. 开奖时,将执行 m 次操作,每次操作挑一个不超过 200 的数 d,且保证 d
不超过人数的一半,然后把第 D 个人和第 n-D+1 个人这两个人之间的队伍反转:
2. 反转前: 1,2,...,D-1,D,D+1,..., n-D+1, n-D+2,...n(从左往右编号)
3. 反转后: 1,2,...,D-1,n-D+1,n-D,..., D+1, D, n-D+2...n(这里的编号
是旋转前从左到右的编号)
m 次操作完后从队头开始报号,没报到 x 的回到队尾,报到 x 的就是幸运儿
啦;
机智的泡泡马上又意识到,当 n 和 m 次操作和 x 的值已知的时候,幸运儿仍
然是可以预知到是第几个参与抽奖的人的。
机智的泡泡马上又意识到,自己的饭碗保住了。
但是!机智的泡泡马上意识到一个问题,这个预知结果的代码不好打。
但是!机智的泡泡马上想起了你。
机智的泡泡马上把锅又扔给了你。

★数据输入
输入第一行为三个正整数 n, m, x。
接下来 m 行,第 i 行给出第 i 次操作的 d,如题;
对于 80%的数据, 2<=n<=2000, 1<=m<=2000;
对于 100%的数据, 2<=n<=100000, 1<=m<=100000
1<=x<=1000,000,000, 1<=d<=min(n/2,200);

★数据输出
输出幸运儿是第几个参加抽奖的人。

输入示例 输出示例
5 2 1
2 1
5
输入示例 输出示例
5 4 3
2 1 2 1
3

解题思路

  假设有五个元素,对1~5与2~4哥翻转一遍,那么2~4相当于没有翻转

  使用flag确定目标值是否翻转,若翻转,用对称性可推出翻转后得index

code

 #include <stdio.h>

 int main()
{
int i;
int num,opnum,x;
int tmp;
bool flag = false; scanf("%d %d %d",&num,&opnum,&x);
x%=num;
if(x==) x=num;
for(i=; i<opnum; i++)
{
scanf("%d",&tmp);
if(tmp<=x && x<=num-tmp+)
flag = !flag;
} if(flag)
printf("%d",num-x+);
else
printf("%d",x); return ;
}

数据结构_wow(泡泡的饭碗)的更多相关文章

  1. 数据结构_XingYunX(幸运儿)

    数据结构_XingYunX(幸运儿) 问题描述 泡泡最近下了个饱了吗 app,这个 app 推出了个坑蒙拐骗的红包系统,只要花一块钱买张一元抵用券,就有参与 20 元红包的抽奖机会,抽奖界面会实时显示 ...

  2. 泡泡后台Couchbase缓存使用经验分享

    一.导读 爱奇艺的社交业务“泡泡”,拥有日活用户6千万+,后台系统每日高峰期间接口QPS可以达到80K+,与视频业务的主要区别是泡泡业务更多地引入了与用户互动相关的数据,读.写的量均很大.无论是庞大的 ...

  3. 【PHP数据结构】交换排序:冒泡、快排

    上篇文章中我们好好地学习了一下插入类相关的两个排序,不过,和交换类的排序对比的话,它们真的只是弟弟.甚至可以说,在所有的排序算法中,最出名的两个排序都在今天要介绍的交换排序中了.不管是冒泡.还是快排, ...

  4. 多线程爬坑之路-学习多线程需要来了解哪些东西?(concurrent并发包的数据结构和线程池,Locks锁,Atomic原子类)

    前言:刚学习了一段机器学习,最近需要重构一个java项目,又赶过来看java.大多是线程代码,没办法,那时候总觉得多线程是个很难的部分很少用到,所以一直没下决定去啃,那些年留下的坑,总是得自己跳进去填 ...

  5. 一起学 Java(三) 集合框架、数据结构、泛型

    一.Java 集合框架 集合框架是一个用来代表和操纵集合的统一架构.所有的集合框架都包含如下内容: 接口:是代表集合的抽象数据类型.接口允许集合独立操纵其代表的细节.在面向对象的语言,接口通常形成一个 ...

  6. 深入浅出Redis-redis底层数据结构(上)

    1.概述 相信使用过Redis 的各位同学都很清楚,Redis 是一个基于键值对(key-value)的分布式存储系统,与Memcached类似,却优于Memcached的一个高性能的key-valu ...

  7. 算法与数据结构(十五) 归并排序(Swift 3.0版)

    上篇博客我们主要聊了堆排序的相关内容,本篇博客,我们就来聊一下归并排序的相关内容.归并排序主要用了分治法的思想,在归并排序中,将我们需要排序的数组进行拆分,将其拆分的足够小.当拆分的数组中只有一个元素 ...

  8. 算法与数据结构(十三) 冒泡排序、插入排序、希尔排序、选择排序(Swift3.0版)

    本篇博客中的代码实现依然采用Swift3.0来实现.在前几篇博客连续的介绍了关于查找的相关内容, 大约包括线性数据结构的顺序查找.折半查找.插值查找.Fibonacci查找,还包括数结构的二叉排序树以 ...

  9. 算法与数据结构(九) 查找表的顺序查找、折半查找、插值查找以及Fibonacci查找

    今天这篇博客就聊聊几种常见的查找算法,当然本篇博客只是涉及了部分查找算法,接下来的几篇博客中都将会介绍关于查找的相关内容.本篇博客主要介绍查找表的顺序查找.折半查找.插值查找以及Fibonacci查找 ...

随机推荐

  1. 网页播放rtsp流媒体

    解决方法: 1.搭建Red5流媒体服务器(其他还有CRTMPD.NGINX-RTMP.SRS) 2.FFmpeg(其他还有live555)实现监控摄像头的RTSP协议转RTMP协议直播 3.搭建WEB ...

  2. [ZOJ2587]Unique Attack

    vjudge sol 最小割判定唯一性. 只要做完一个任意最小割后,判断一下是不是所有点都要么和\(S\)相连,要么和\(T\)相连. 只要两边各一次\(dfs\)就行了. code #include ...

  3. LeetCode Design Compressed String Iterator

    原题链接在这里:https://leetcode.com/problems/design-compressed-string-iterator/description/ 题目: Design and ...

  4. java 实现树形结构

    package tree; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Font; import java ...

  5. CentOS6.5 下MySQL傻瓜式安装

    为了为服务器上装mysql我先在虚拟机上练习了一下特此记录并分享; 注:参考文章https://www.cnblogs.com/xiaoluo501395377/archive/2013/04/07/ ...

  6. @property_@synthesize 配套使用

    @property 类默认实现变量的get set方法 @synthesize 是指定那个变量的 get和set方法 eg: .h文件中定义 类Student中含有两个 int age,和int _a ...

  7. 转:MySQL InnoDB Add Index实现调研

    MySQL InnoDB Add Index实现调研 MySQL Add Index实现 MySQL各版本,对于add Index的处理方式是不同的,主要有三种: Copy Table方式 这是Inn ...

  8. DripRoad(点滴之路)

    关于DripRoad DripRoad 意为点滴之路,程序员之路在于点滴积累!是的,这些积累包括技术能力,沟通能力,业务能力等等.   我 我是唐志伟,2009年一个人来上海,就读于上海医疗器械高等专 ...

  9. CentOS7 线上环境的一些 配置

    上周服务器被攻击导致上面收回了我们服务器的IP,所以这周重新安装部署了服务器,使用centos7系统.为了防止服务器再次被攻击,所以建议以下几点: 1. root密码要复杂一点,尽量字母数字特殊字符都 ...

  10. java 多线程系列---JUC原子类(四)之AtomicReference原子类

    AtomicReference介绍和函数列表 AtomicReference是作用是对"对象"进行原子操作. AtomicReference函数列表   // 使用 null 初始 ...