小苹果

2024-05-04 19:04
文章标签 小苹果

本文主要是介绍小苹果,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

Y的桌子上放着几个苹果从左到右排成一列,编号为从1 到 n。小苞是小Y的好朋友,每天她都会从中拿走一些苹果。每天在拿的时候,小苞都是从左侧第1个苹果开始、每隔2个苹果拿走1个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。小苞想知道,多少天能拿完所有的苹果,而编号为 n 的苹果是在第几天被拿走的?

输入格式

输入的第一行包含一个正整数 n,表示苹果的总数。

输出格式

输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为 n 的苹果是在第几天。

样例输入

8

样例输出

5 5

思路

(本蒟蒻也是参加了本次CSP-J组的复赛,不过也是掉进了第一题的坑里)

注意:单纯的数组模拟是不能AC的(本蒟蒻使用此方法:50分,是TLE),因为数组模拟必须要用二重循环,时间复杂度为 O(n^{2})

我们可以发现6~10测试点的数据范围均为 10^{6} 以上,如果还用O(n^{2})的算法,必然会超时(TLE),所以必须要用O(n)级别的算法。我们可以画一个图来模拟一下,应该不难发现每次拿去的苹果数量都是 \left \lceil \frac{n}{3} \right \rceil,也就是 n 除以 3 的向上取整,那么有了这一结论,问题就迎刃而解了!

贴代码!!!

参考代码

#include <bits/stdc++.h>
#define ll long long
using namespace std;//const int N = ;int main()
{ios::sync_with_stdio(0);cin.tie(0);int i, n, ans = 0; //i 表示共进行多少轮,ans 表示第 n 个苹果被拿走时的轮数cin>>n;while(n) // n 不等于0{i++;if(n % 3 == 1 && ans == 0) // 仅剩一个苹果时,当3个3个的苹果被拿完后,便是答案ans = i;n -= (n + 2) / 3; // n 减去向上取整再除3}cout << i << " " << ans;return 0;
}

后续CSP-J组真题持续更新,喜欢的点个关注+赞!

这篇关于小苹果的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/959897

相关文章

P9748 [CSP-J 2023] 小苹果 / P7071 [CSP-J2020] 优秀的拆分:做题笔记

目录 P9748 [CSP-J 2023] 小苹果 思路 代码 P7071 [CSP-J2020] 优秀的拆分 思路 代码 P9748 [CSP-J 2023] 小苹果 P9748 [CSP-J 2023] 小苹果 思路 先写几个看看规律 题意我们能看出来是三个三个一组的,然后每次取走的都是三个里面的第一个。我们应该很容易想到如果一轮的总数是三的倍数的话,那直

TV电视软件(TVbox和小苹果影视)

现如今,家庭电视机的使用受限于各种会员和平台的资源限制,导致观看视频变得不那么便捷,无法在一个平台满足所有影视需求。 我想向大家推荐两款实用的软件,让您的电视不再闲置,只需一个软件即可满足您的绝大部分影视需求。 1、TVBox TVBox目前支持电视直播功能,只要接口中包含直播源,即可在播放器中观看直播节目。这一功能基本上相当于一个直播APP,让您随心所欲地追剧和观看电视节目。 具体功能就

[CSP-J 2023] 小苹果

给大家带来的是用ceil函数写的[CSP-J 2023] 小苹果,大家参考一下ceil的用法: `ceil` 函数是一个数学函数,用于将一个浮点数向上取整为最接近的整数。在不同的编程语言和系统环境中,`ceil` 函数的实现可能有所不同。以下是几种不同编程语言中 `ceil` 函数的用法: 在C/C++中,`ceil` 函数的原型为 `double ceil(double x)`,它返回大于或

CSP-J 2023 复赛第1题:小苹果

【题目来源】https://www.luogu.com.cn/problem/P9748https://www.acwing.com/problem/content/5310/【题目描述】 小 Y 的桌子上放着 n 个苹果从左到右排成一列,编号为从 1 到 n。 小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第 1 个苹果开始、每隔 2 个苹果拿走 1 个苹果

洛谷: [CSP-J 2023] 小苹果

题目描述 小 Y 的桌子上放着 n n n 个苹果从左到右排成一列,编号为从 1 1 1 到 n n n。 小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第 1 1 1 个苹果开始、每隔 2 2 2 个苹果拿走 1 1 1 个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。 小苞想知道,多少天能拿完所有的苹果,而编号为 n n n

【论文阅读|半监督小苹果检测方法S3AD】

论文题目 : : Semi-supervised Small Apple Detection in Orchard Environments 项目链接:https://www.inf.uni-hamburg.de/en/inst/ab/cv/people/wilms/mad.html 摘要(Abstract) 农作物检测是自动估产或水果采摘等精准农业应用不可

C++ 蓝桥杯历届试题 —— 小苹果题目情景及代码

信奥真题情景 【题目描述】 小 Y 的桌子上放着 n 个苹果从左到右排成一列,编号为从 1 到 n。 小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第 1 个苹果开始、每隔 2 个苹果拿走 1 个苹果。 随后小苞会将剩下的苹果按原先的顺序重新排成一列。 小苞想知道,多少天能拿完所有的苹果,而编号为 n 的苹果是在第几天被拿走的? 【输入格式】 从文

【寒假每日一题·2024】AcWing 5307. 小苹果(补)

文章目录 一、题目1、原题链接2、题目描述 二、解题报告1、思路分析2、时间复杂度3、代码详解 三、知识风暴 一、题目 1、原题链接 5307. 小苹果 2、题目描述 二、解题报告 1、思路分析 思路参考y总:y总讲解视频 (1)根据题目可以分析出:每次取走的苹果数为n/3上取整个。 (2)由于每次都取走每三个苹果中的第一个,所以可以分析得出

历年CSP-J复赛真题解析 | 2023年T1小苹果

学习C++从娃娃抓起!记录下CSP-J备考学习过程中的题目,记录每一个瞬间。 附上汇总贴:历年CSP-J复赛真题解析 | 汇总_热爱编程的通信人的博客-CSDN博客 【题目描述】 小Y的桌子上放着n个苹果从左到右排成一列,编号为从1到n。 小苞是小Y的好朋友,每天她都会从中拿走一些苹果。 每天在拿的时候,小苞都是从左侧第1个苹果开始、每隔2个苹果拿走1个苹果。随后小苞会将剩下的苹果按

暴打小苹果

欢迎来到程序小院 暴打小苹果 玩法:鼠标左键点击任意区域可发招暴打,在苹果到达圆圈时点击更容易击中,30秒挑战暴打小苹果,打中一次20分,快去暴打小苹果吧^^。 开始游戏https://www.ormcc.com/play/gameStart/247 html <canvas id="canvas" width="630" height="992" style="bac