2023 CSP-J2 T1题解
今年的
A [CSP-J 2023] 小苹果
题目描述
小 Y 的桌子上放着
小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。
每天在拿的时候,小苞都是从左侧第
小苞想知道,多少天能拿完所有的苹果,而编号为
输入格式
输入的第一行包含一个正整数
输出格式
输出一行包含两个正整数,两个整数之间由一个空格隔开,分别表示小苞拿走所有苹果所需的天数以及拿走编号为
样例 #1
样例输入 #1
8
样例输出 #1
5 5
提示
【样例
小苞的桌上一共放了
小苞第一天拿走了编号为
小苞第二天拿走了编号为
小苞第三天拿走了编号为
小苞第四天拿走了编号为
小苞第五天拿走了编号为
【样例
见选手目录下的 apple/apple2.in 与 apple/apple2.ans。
【数据范围】
对于所有测试数据有:
测试点 | 特殊性质 | |
---|---|---|
无 | ||
无 | ||
有 | ||
无 | ||
无 |
特殊性质:小苞第一天就取走编号为 的苹果。
解题思路:
根据题意模拟即可。
考虑一轮会删掉多少数,容易发现是
所以每一轮操作完之后
考虑n是在第几轮被删除的,由于每一轮做完后它要么在最后一个,要么已经被删除了
所以判断该轮是否被删除只需要判断当前长度
Code
#include<iostream>
using namespace std;
int f(int n)
{
if(n%3==1)
{
return 1;
}
return f(n-(n+2)/3)+1;
}
int main()
{
int n,ans=0,tmp;
cin>>n;
tmp=n;
while(tmp)
{
ans++,tmp-=(tmp+2)/3;
}
cout<<ans<<" "<<f(n)<<endl;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】