首页 > 其他分享 >2023 CSP-J2 T1,2,3题解

2023 CSP-J2 T1,2,3题解

时间:2023-10-27 17:55:54浏览次数:37  
标签:10 题解 样例 拿走 小苞 苹果 编号 T1 CSP

今年的 \(CSP−J\) 对本蒟蒻来说有点难度。。。

A [CSP-J 2023] 小苹果

题目描述

小 Y 的桌子上放着 \(n\) 个苹果从左到右排成一列,编号为从 \(1\) 到 \(n\)。

小苞是小 Y 的好朋友,每天她都会从中拿走一些苹果。

每天在拿的时候,小苞都是从左侧第 \(1\) 个苹果开始、每隔 \(2\) 个苹果拿走 \(1\) 个苹果。随后小苞会将剩下的苹果按原先的顺序重新排成一列。

小苞想知道,多少天能拿完所有的苹果,而编号为 \(n\) 的苹果是在第几天被拿走的?

输入格式

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

输出格式

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

样例 #1

样例输入 #1

8

样例输出 #1

5 5

提示

【样例 \(1\) 解释】

小苞的桌上一共放了 \(8\) 个苹果。
小苞第一天拿走了编号为 \(1\)、\(4\)、\(7\) 的苹果。
小苞第二天拿走了编号为 \(2\)、\(6\) 的苹果。
小苞第三天拿走了编号为 \(3\) 的苹果。
小苞第四天拿走了编号为 \(5\) 的苹果。
小苞第五天拿走了编号为 \(8\) 的苹果。

【样例 \(2\)】

见选手目录下的 apple/apple2.in 与 apple/apple2.ans。

【数据范围】

对于所有测试数据有:\(1\leq n\leq 10^9\)。

测试点 \(n\leq\) 特殊性质
\(1\sim 2\) \(10\)
\(3\sim 5\) \(10^3\)
\(6\sim 7\) \(10^6\)
\(8\sim 9\) \(10^6\)
\(10\) \(10^9\)

特殊性质:小苞第一天就取走编号为 \(n\) 的苹果。

解题思路:

根据题意模拟即可。

考虑一轮会删掉多少数,容易发现是 \(\left \lfloor \frac{n+2}{3} \right \rfloor\)
所以每一轮操作完之后 \(n\) 会变成原本的 \(\frac{2}{3}\) 左右,因此可知操作轮数一定很少,可以直接暴力枚举会进行几轮
考虑n是在第几轮被删除的,由于每一轮做完后它要么在最后一个,要么已经被删除了
所以判断该轮是否被删除只需要判断当前长度 \(n\) 是否 $\equiv 1 \pmod{3} $。

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;
}

标签:10,题解,样例,拿走,小苞,苹果,编号,T1,CSP
From: https://www.cnblogs.com/cxy-xlf-1003/p/17792896.html

相关文章

  • [TJOI2013] 松鼠聚会 题解
    [TJOI2013]松鼠聚会题解切比雪夫距离切比雪夫距离指的是在平面上的两个点\((x_1,y_1)\),\((x_2,y_2)\)之间横纵坐标之差绝对值中的大者。用公式表示则是\(f(a,b)=max(|x_a-x_b|,|y_a-y_b|)\)。切比雪夫距离与曼哈顿距离之间可以相互转换切比雪夫—>曼哈顿:\((x_1,y_1)\),\((x......
  • [NOIP 2013提高组]货车运输 题解
    [NOIP2013提高组]货车运输题解前置知识Kruskal重构树(内含讲解)+任意一种LCA题目翻译\(n\)座城市,\(m\)条道路,\(q\)次询问,每次求两个点\(x,y\)之间所有路径的最小值的最大值。题目分析其实学了Kruskal重构树差不多看到这个题目就知道怎么写了。其实就是Kruskal重构树的板子,......
  • 问题解决
    pip源问题解决使用pip安装pytorch出现WARNING:Retrying(Retry(total=4,connect=None,read=None,redirect=None,status=None))报错使用换源解决问题pip3configlistpip3configsetglobal.index-urlhttps://mirrors.aliyun.com/pypi/simple/pip3configlist国内......
  • 第四章苏格拉底问答、实践过程截图、遇到问题解决问题截图,代码链接
    代码#include<stdio.h>#include<stdlib.h>#include<pthread.h>#defineN4intA[N][N],sum[N];void*func(voidarg){intj,row;pthread_ttid=pthread_self();row=(int)arg;printf("Thread%d[%lu]computessumofrow%d\n"......
  • Python打不开问题解决方案大全
    在使用Python进行编程开发的过程中,我们不可避免会遇到Python打不开的问题。这些问题可能是由于环境配置、包管理和依赖文件等问题所导致的,但不管是何种原因,我们都需要解决它们才能顺利地进行工作。本文将从多个方面为大家详细介绍Python打不开问题的解决方法。一、Python环境配......
  • Acwing393. 雇佣收银员 题解 差分约束
    题目链接:https://www.acwing.com/problem/content/description/395/解题思路:差分约束。为了方便起见,定义第\(i\)个时间段为\(i-1:00\)到\(i:00\)首先,为了方便开一个额外的点,令\(R_i\)对应为题目中的\(R(i+1)\),即\(R_i\)表示\(i-1:00\)到\(i:00\)这个时间段的最小需求......
  • AnyCAD程序无法启动的问题解决方法
    在某些电脑上会出现基于AnyCAD开发的程序无法启动的问题,如:System-ArgumentEcception:Pleasecheckthedependendes解决方法安装最新的VS运行时库,如VS2022:微软官方下载地址:x64:vc_redist.x64.exeSystem.AccessViolationException:"Attemptedtoreadorwriteprotectedmemor......
  • CF777题解
    分析先对每一列都做DP寻找极长单调不降区间,能够得到若干极长单调不降区间,只要询问的区间是这些区间的子区间,那么说明在这个区间内必有一列的这个区间是单调不降的。思考如何快速判断子区间。用\(f_{x}\)表示以\(x\)为所有左端点为\(x\)的区间的右端点最大值,那么对于......
  • ThinkPad OneLink+ Dock扩展坞 多屏幕 黑屏 问题解决
    我的机器是ThinkpadnewS2,扩展坞是ThinkPadOneLink+Dock,操作系统是win10原版。由于工作原因,把笔记本当台式机用。接了两台1920*1080的显示器。用了一段时间后,两台显示器中的其中一台显示器,黑屏,在win10的显示界面,应当有三台显示器,但实际只有两台。类似下图出现这个问题,毫无......
  • 'main' attribute cannot be used in a module that contains top-level code 问题解
    核心是@main注解在main.swift文件中,可以重新命名下参考资料https://stackoverflow.com/questions/73431031/swift-cli-app-main-attribute-cannot-be-used-in-a-module-that-contains-top-leve......