CSP-J/S 2023 第二轮认证入门级(第一题AC代码+第二题题目)

1 篇文章 0 订阅

2023CCF  非专业级软件能力认证
CSP-J/S 2023 第二轮认证
入门级

点个赞,收藏,和关注吧!

时间: 2023 年 10 月 21  日 08:30 ∼ 12:00

题目名称

小苹果

公路

一元二次方程

旅游巴士

题目类型

传统型

传统型

传统型

传统型

目录

apple

road

uqe

bus

可执行文件名

apple

road

uqe

bus

输入文件名

apple.in

road.in

uqe.in

bus.in

输出文件名

apple.out

road.out

uqe.out

bus.out

每个测试点时限

1.0 秒

1.0 秒

1.0 秒

1.0 秒

内存限制

512 MiB

512 MiB

512 MiB

512 MiB

测试点数目

10

20

10

20

测试点是否等分

                提交源程序文件名

对于C++     语言apple.cpproad.cppuqe.cppbus.cpp

                编译选项

对于C++     语言‐O2 ‐std=c++14 ‐static

                注意事项(请仔细阅读)

                1.  文件名(程序名和输入输出文件名)必须使用英文小写。

                2.  C/C++  中函数 main() 的返回值类型必须是 int,程序正常结束时的返回值必须 是 0。

                3.  提交的程序代码文件的放置位置请参考各省的具体要求。

                4.  因违反以上三点而出现的错误或问题,申诉时一律不予受理。

                5.  若无特殊说明,结果的比较方式为全文比较(过滤行末空格及文末回车)。

                6.  选手提交的程序源文件必须不大于 100KB。

                7.  程序可使用的栈空间内存限制与题目的内存限制一致。

                8.  全国统一评测时采用的机器配为: Intel(R) Core(TM)i78700K CPU @3.70GHz, 内                       存 32GB。上述时限以此配置为准。

                9.  只提供 Linux 格式附加样例文件。

                10.  评测在当前最新公布的 NOI Linux 下进行,各语言的编译器版本以此为准。

小苹果(apple)

【题目描述】

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

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

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

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

【输入格式】

    从文件 apple.in 中读入数据。

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

【输出格式】

    输出到文件 apple.out 中。

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

【样例 1 输入】

8

【样例 1 输出】

5 5

 【样例 1 解释】

        小苞的桌上一共放了 8 个苹果。

        小苞第一天拿走了编号为 1、4、7 的苹果。

        小苞第二天拿走了编号为 2、6 的苹果。

        小苞第三天拿走了编号为 3 的苹果。

        小苞第四天拿走了编号为 5 的苹果。

        小苞第五天拿走了编号为 8 的苹果。

    【样例 2】

        见选手目录下的 apple/apple2.inapple/apple2.ans


    【数据范围】

        对于所有数据测试有:1 ≤ n ≤ 10⁹。

测试点n≤特殊性质
1~210
3~510³
6~710⁶
8~910⁶
1010⁹

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

    AC代码

#include<bits/stdc++.h>
using namespace std;
long long n,cnt,p=-1;
int main()
{
//	freopen("apple.in","r",stdin);
//	freopen("apple.out","w",stdout);
	scanf("%lld",&n);
	while(n>0)
	{
		cnt++;
		if(n%3==1 && p==-1)
		{
			p=cnt;
		}
		n-=(n-1)/3+1;
	}	
	printf("%lld %lld",cnt,p);
	return 0;
}

公路(road)

    【题目描述】

        小苞准备开着车沿着公路自驾。

        公路上有 n 个站点,编号为从 1 到 n。其中站点 i 与 站点 i+1 的距离为 uᵢ 公里。

        公路上每个站点都可以加油,编号为 i 的站点一升油的价格为 aᵢ 元,且每个站点只出售整数            升的油。

        小苞想从站点 1 开车到站点 n,一开始小苞在站点 1 且车的油箱是空的。已知车的油箱足够            大,可以装下任意多的油,且每升油可以让车前进 d 公里。问小苞从站点 1 开到站点 n ,至          少要花多少钱加油?

    【输入格式】

        从文件road. in中读入数据。
        输入的第一行包含两个正整数 n 和 d ,分别表示公路上站点的数量和车每升油可以
        前进的距离。
        输入的第二行包含 n - 1 个正整数 v₁,v₂···vₙ₋₁, 分别表示站点间的距离。分别表示站点间的          距离。
        输入的第二行包含n个正整数 a₁,a₂······aₙ,分别表示在不同站点加油的价格。

    【输出格式】

        输出到文件 road.out 中。 输出一行,仅包含一个正整数,表示从站点 1 开到站点 n,小苞            至少要花多少钱加油。

    【样例 1 输入】

5 4
10 10 10 10
9 8 9 6 5

    【样例 1 输出】

79

    【样例 1 解释】

        最优方案下:小苞在站点 1 买了 3 升油,在站点 2 购买了 5 升油,在站点 4 购买 了 2 升                油。

    【样例 2】

        见选手目录下的 road/road2.inroad/road2.ans

    【数据范围】

        对于所有测试数据保证:1 ≤ n ≤ 10⁵,1 ≤ d ≤ 10⁵,1 ≤ vᵢ ≤ 10⁵,1 ≤ aᵢ ≤ 10⁵。

测试点n ≤特殊性质
1 ∼ 58
6 ~1010³
11 ~ 1310⁵A
14 ~ 1610⁵B
17 ~ 2010⁵

        特殊性质 A:站点 1 的油价最低。

        特殊性质 B:对于所有 1 ≤ i < n,vᵢ 为 d 的倍数。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值