CSP-J 复赛 模拟题6

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​.

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值