洛谷 P2069 松鼠吃果子

https://www.luogu.org/problemnew/show/P2069

JDOJ 1256: VIJOS-P1078 松鼠吃果子

https://neooj.com:8082/oldoj/problem.php?id=1256

题目描述

有N个一种松鼠喜欢吃的果子由下向上串排成一列,并标号1,2,...N。一只松鼠从最下果子开始向上跳,并且第i次跳可以一次跳过i*i*i除以5的余数+1个果子(=i*i*i%5+1),并把脚下的果子吃了,如果上面有果子,在重力作用下,都将向下掉下一格。如第1次跳从第一个果子上跳过1*1*1%5+1=2个果子,可跳到第3个果子上,并把第3个果子吃了;第2次从第4个果子上(落在原来第三个果子位置)跳过2*2*2%5+1=4个到第8个果子上,并把第8个吃了;如此...。

当然,总有一次松鼠会跳出这串果子的最前面,设为每K次,它吃不到任何果子了。这时它回到最下面的果子上,重做它的第K次跳,以求吃到果子。如此,问它吃的第m只果子(即第M跳吃到的果子)的标号是什么?

输入输出格式

输入格式:

一共两行,分别为N和m。(1<=m<=n<=200,并且满足能够跳到第m次)

输出格式:

一个数,即它吃的第m只果子的标号

输入输出样例

输入样例#1: 复制

10
4
输出样例#1: 复制

9

说明

注:吃掉的果子依次为3,8,4(回到下面重做第3跳),9(回到下面重做第4跳)

模拟题。

如果用数组模拟的话,单点删除实在是过于费劲。

然后想到了动态数组,但是模模糊糊地记忆动态数组不支持单点删除。

但是打数组模拟累死了。

看了题解加百度搜索之后,我发现了这么一个函数:a.erase();

括号里加地址,可以删除那个点的元素,其他元素落下来。

简直就是为了这个题而生的啊!!

所以就有了代码,一开始WA了几次,需要一些细节处理。

#include<cstdio>
#include<vector>
using namespace std;
vector<int> a;
int pos=;
int n,m;
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
a.push_back(i);
for(int i=;i<=m;i++)
{
int t=i*i*i%+;
pos+=t;
if(pos>a.size())
pos=t+;
if(i!=m)
a.erase(a.begin()+pos-);
}
printf("%d",a[pos-]);
return ;
}

首先理解好pos=t+1的意思,一开始的位置可不是0,是1,所以要把开始的1加上。

a.begin是指向vector中的第一个元素,这个位置就是1,所以要在后面把pos多加的1减去。

同理,最后输出也是如此。

VIJOS-P1078 松鼠吃果子的更多相关文章

  1. 洛谷 P2069 松鼠吃果子

    P2069 松鼠吃果子 题目描述 有N个一种松鼠喜欢吃的果子由下向上串排成一列,并标号1,2,...N.一只松鼠从最下果子开始向上跳,并且第i次跳可以一次跳过i*i*i除以5的余数+1个果子(=i*i ...

  2. Luogu P2069 【松鼠吃果子】

    推荐一波数组模拟链表的讲解 这道题呢,数组写的话不好删除(因为后面要接过来),自然想到链表 对于一个果子,我们可以维护其前驱和后继,我们不妨记与一个点相邻的上面的点为其前驱,下面的点为其后继 观察到题 ...

  3. ACM 懒省事的小明

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...

  4. ACM题目————STL练习之 懒省事的小明(优先队列)

    描述 小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆.小明决定把所有的果子合成一堆. 因为小明比较懒,为了省力气,小明开始想点子了: 每一 ...

  5. NYOJ 55-懒省事的小明

    点击打开链接 懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果 ...

  6. BZOJ_1270_雷涛的小猫_(动态规划)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1270 有n棵树,高度为h.一只猫从任意一棵树的树顶开始,每次在同一棵树上下降1,或者跳到其他树 ...

  7. nyoj 55 懒省事的小明【优先队列】

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...

  8. 优先队列(和fence repair完全一样)

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述       小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种 ...

  9. 懒省事的小明--nyoj55

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描述      小明很想吃果子,正好果园果子熟了.在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分成 ...

随机推荐

  1. C#中List<T>转DataTable

      通过查询出来的类的集合的属性集合生成数据行,并通过属性获取每一个实体的指定属性的指定值

  2. checkbox如何判断是否选中

    checkbox在项目中使用的比较多,好多时候需要判断,或者作为某些逻辑的依据. 总结一下,拿到checkbox状态的方法. <label for="checkbox"> ...

  3. 小玩意儿之Gitlab 代码提交日志同步到禅道项目管理系统

    以前都是使用禅道官方推荐的服务器本地扫描的方式,但其实不太方便,需要跟着项目的变化,不断的在配置文件维护项目相应仓库的配置. 然后现在Web Hooks越来越普遍的情况下,想尝试一种新的方式.看了禅道 ...

  4. Python 将numpy array由浮点型转换为整型

    Python 将numpy array由浮点型转换为整型 ——使用numpy中的astype()方法可以实现,如:

  5. Docker学习4-学会如何让容器开机自启服务

    前言 小龙亲测重启服务器后 docker 容器没跑起来,相信有不少小伙伴在用docker部署容器的时候也发现每次开机服务就没有自启了,需要手动去执行把容器服务开启起来,但有没有可以让它开机自启呢?显然 ...

  6. 【UOJ#82】【UR #7】水题生成器(贪心)

    [UOJ#82][UR #7]水题生成器(贪心) 题面 UOJ 题解 把\(n!\)的所有约数搜出来,这个个数不会很多. 然后从大往小能选则选就好了. #include<iostream> ...

  7. kali渗透综合靶机(十三)--Dina 1.0靶机

    kali渗透综合靶机(十三)--Dina 1.0靶机 一.主机发现 1.netdiscover -i eth0 -r 192.168.10.0/24 二.端口扫描 1. masscan --rate= ...

  8. “金九银十”已过,总结我的天猫、蚂蚁、头条面试经历(Java岗)

    跳槽时时刻刻都在发生,但是我建议大家跳槽之前,先想清楚为什么要跳槽.切不可跟风,看到同事一个个都走了,自己也盲目的开始面试起来(期间也没有准备充分),到底是因为技术原因(影响自己的发展,偏移自己规划的 ...

  9. Lambda(一)lambda表达式初体验

    Lambda(一)lambda表达式初体验 Lambda引入 : 随着需求的不断改变,代码也需要随之变化 需求一:有一个农场主要从一堆苹果中挑选出绿色的苹果 解决方案:常规做法,source code ...

  10. vue笔记(一)

    Vue的开发 一丶下载 # 中文下载地址: https://cn.vuejs.org/ # 使用方式: # 1. 单独使用 vue.min.js.文件 # 2. 结合node.js使用集成工具 二丶v ...