CSP-J 复赛 模拟题6

ops/2024/10/20 6:36:03/

1.大小写字母互换:

题目描述

由输入给定一个字符串,你的任务是将原字符串中的大写字母转换成其对应的小写字母,还要将原字符串中的小写字母转换成对应的大写字母,其余字符不变。

输出转换之后得到的新字符串。

输入格式

一行,一个字符串,可能包含空格。

输出格式

一行,表示转换之后的字符串

输入输出样例

输入 #1

How much U wanna risk?
 

输出 #1

hOW MUCH u WANNA RISK?
 

说明/提示

对于100%的测试点,保证字符串长度不超过1000.

2.超能力棋盘

题目描述

公元2069年,Centent公司所经营的围斗寿棋业务突破了下限,他们甚至允许对弈双方在开局时通过充值来提前落子!

我们可以将棋盘视作一个无限大的平面直角坐标系,棋盘的正中心坐标为(0,0),所有棋子都必须放置在实线的交叉点处(即横坐标纵坐标均为整数的位置)。如下图所示:

小C计划在对局开始前,先在棋盘上放置n个棋子,放置一枚棋子至(x,y)处的代价为∣x∣+∣y∣ 。如果放置了多枚棋子,那么你只需要付出代价最高的那一枚棋子的代价。为了让每一枚棋子都能充分的发挥作用,小C想让任意两枚棋子都不会挨着(即两枚棋子间的距离大于1)。请问为了放置这n枚棋子,小C至少需要付出多少代价?

输入格式

第一行,一个正整数T表示多组数据。

接下来T行,每行一个正整数n表示需要放置的棋子数目。

输出格式

输出共T行,每行一个数,表示放置n枚棋子所需要的最小代价。

输入输出样例

输入 #1

4
1
3
5
975461057789971042
 

输出 #1

0
1
2
987654321
 

说明/提示

样例解释:

对于第一组询问,直接将11枚棋子放置于(0,0)(0,0)处,所需代价为00。

对于第二组询问,直可以将33枚棋子放置于(1,0),(−1,0),(0,1)(1,0),(−1,0),(0,1)处,所需代价为11。

对于第三组询问,直可以将55枚棋子放置于(0,0),(1,1),(−1,1),(1,−1),(−1,−1)(0,0),(1,1),(−1,1),(1,−1),(−1,−1)处,所需代价为22。

数据范围:

对于20%的数据,保证n≤10^2.

对于50%的数据,保证n≤10^5.

对于80%的数据,保证T≤10^4,n≤10^8.

对于100%的数据,保T≤10^6,n≤10^18.

3.分糖果

题目描述

现在有 n 包糖果要分给两名小朋友,每一包糖果里有着 1,2,31,2,3 颗糖果。我们当然希望能分给两名小朋友同样多的糖果,请问是否能够办到?可以的话请输出 YES, 否则请输出 NO 。

输入格式

输入第一行,一个正整数 T 表示多组数据。

接下来 T 组数据,每组数据分两行输入:

  • 第一行,一个正整数 n 表示有 n 包糖果。

  • 第二行,n 个正整数 1,2,...,a1​,a2​,...,an​ 表示每包糖果中的糖果个数。

输出格式

输出共 T 行,每行一个 YES 或 NO 表示结果。

输入输出样例

输入 #1

3
5
1 3 3 2 1
4
1 3 3 2
6
3 1 3 2 1 2
 

输出 #1

YES
NO
YES

说明/提示

样例解释:

对于第一组样例,分给一名小朋友第 1,3,51,3,5 包糖果,另一名小朋友第 2,42,4 包糖果,两名小朋友所得的糖果个数相同。

对于第二组样例,44 包糖果中的总糖果个数为奇数,无论如何也无法办到。

数据范围:

对于 100% 的数据,保证T≤10^2,n≤10^4,1≤ai​≤3。

4.最少交换次数:

题目背景

Famrer Jnoh闲来无事,开始钻研起了排序算法

无所不能的Famrer Jnoh每一次能够将序列中的任意两个数字交换位置,但他很着急,想要知道最少交换多少次可以让整个序列完全有序(升序降序都算)。

题目描述

给定n个数1,2,...,a1​,a2​,...,an​,请求出最少经过多少次的交换,可以让n个数按照升序或降序排列。

输入格式

第一行一个整数n;

第二行n个数,表示1,2,...,a1​,a2​,...,an​.

输出格式

一个整数,表示最少经过多少次交换可以使得这n个数有序.

输入输出样例

输入 #1

5
2 3 1 5 4
 

输出 #1

3
 

输入 #2

7
6 5 1 7 4 2 3
 

输出 #2

5
 

说明/提示

数据范围:

对于10%的数据,保证ai​=i;

对于30%的数据,保证n≤20;

对于60%的数据,保证1,2,...,a1​,a2​,...,an​是1∼n 的一个排列;

对于100%的数据, 保证n≤5⋅105,ai​≤109且对于任意的,i!=j,有ai​!=aj​.


http://www.ppmy.cn/ops/91605.html

相关文章

Mysql聚簇索引与非聚簇索引B+树实现区别详解

聚簇索引 特点: 索引和数据保存在同一个B树中,每一页 也就是每一个节点是按照主键的大小顺序排成一个单项链表,B树的每一层的页与页之间也是根据主键大小顺序排成一个双向链表,非叶子节点存储的是记录的主键指向的页号&#xff…

大整数求余c++

#include<bits/stdc.h> using namespace std; int main(){string a;long long b;cin>>a>>b;int la.size();long long t0;for(int i0;i<l;i){tt*10(a[i]-0);tt%b;}cout<<t;return 0; } 这段代码a可以输入比long long的最大值&#xff08;9223372036…

Android NDK/JNI面试题大全及参考答案(3万字长文)

目录 什么是NDK?它主要用来做什么? 为什么在Android开发中使用NDK? 描述一下NDK和JDK之间的关系 举出一些使用NDK开发的应用场景 什么是JNI?它如何与NDK配合使用? 如何安装和配置Android NDK? 在Android Studio中如何配置NDK路径? 描述一下NDK工具链中的主要工具…

Redis 7.x 系列【37】旁路缓存模式

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Redis 版本 7.2.5 源码地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 缓存1.1 数据库缓存1.2 数据一致性 2. 旁路缓存模式2.1 工作原理2.2 四种更新策略2…

mysql 字符串转数组

在 MySQL 中&#xff0c;可以使用内置的字符串函数 SUBSTRING_INDEX() 和 REPLACE() 来实现将字符串转换为数组。 首先&#xff0c;使用 REPLACE() 函数将字符串中的分隔符替换为空格&#xff0c;然后使用 SUBSTRING_INDEX() 函数将字符串按空格分割成多个子字符串。最后&…

【ARM】v8架构programmer guide(3)_ARMv8的寄存器

目录 4.ARMv8 registers 4.1 AArch64 特殊寄存器 4.1.1 Zero register 4.1.2 Stack pointer &#xff08;SP) 4.1.3 Program Counter &#xff08;PC) 4.1.4 Exception Link Register(ELR) 4.1.5 Saved Process Status Register &#xff08;SPSR&#xff09; 4.2 Proc…

springboot给类进行赋初值的四种方式

目录 1. 使用Value和ConfigurationProperties2. 使用PropertySource创建Person.java写一个测试类 3. 使用ImportResourceStudent类创建beans.xml在主类中引入测试 其他心得 1. 使用Value和ConfigurationProperties 这里不加赘述了&#xff0c;前面我也发过&#xff0c;这里就放…

C# 方法的定义

方法的由来 1.方法(method)的前身是C/C语言的函数(function) 方法是面向对象范畴的概念&#xff0c;在非面向对象语言中仍然称为函数 2.永远都是类(或结构体)的成员 C#语言中函数不可能独立于类(或结构体)之外 只有作为类(结构体)的成员时才被称为方法 C中是可以的&#xf…