NBUACM2024
- 第一场 AK 的比赛也是在此记录一下
https://ac.nowcoder.com/acm/contest/93790
A 构造序列
题目描述
给你
个正数和 个负数,请你使用这些数字,构造一个序列。
序列需要满足:正数不能和正数相邻,负数不能和负数相邻。
那么,最多能构造多长的序列?
输入描述
第一行输入两个整数
( )代表正数数量,负数数量
输出描述
在一行上输出一个整数,代表能构造的最长序列的长度
示例 1
输入
1 | 7 6 |
输出
1 | 13 |
Solution
没有什么特别的签到题,以
1 |
|
B 小红的好数
题目描述
小红定义一个正整数是“好数”,当且仅当该数满足以下两个性质:
- 数位恰好为
。 - 个位数和十位数相同。
请你判断一个给定的正整数是否是好数?
输入描述
一个正整数
输出描述
若
是好数,请输出"Yes"。否则输出"No"。
示例 1
输入
1 | 33 |
输出
1 | Yes |
示例 2
输入
1 | 144 |
输出
1 | No |
Solution
翻译题目即可
1 |
|
C [NOIP2013]记数问题
题目描述
试计算在区间 1 到 n 的所有整数中,数字 x(
)共出现了多少次?
例如,在 1 到 11 中,即在中,数字 1 出现了 4 次。
输入描述
输入共 1 行,包含 2 个整数
,之间用一个空格隔开。
输出描述
输出共 1 行,包含一个整数,表示
出现的次数。
示例 1
输入
1 | 11 1 |
输出
1 | 4 |
备注:
对于 100%的数据,
, 。
Solution
翻译题目即可
1 |
|
D 统计数据正负个数
题目描述
输入 10 个整数,分别统计输出正数,负数的个数。
输入描述
输入 10 个整数(范围
),用空格分隔。
输出描述
两行,第一行正数个数,第二行负数个数,具体格式见样例。
示例 1
输入
1 | -1 2 3 -6 7 8 -1 6 8 10 |
输出
1 | positive:7 |
Solution
翻译题目即可
1 |
|
E 默契
题目描述
经过无数次 Wa~~以后,小财终于理解了二分查找,终于可以出去玩了。
正好这时小金来找他玩猜数字的游戏,
每个人随即说出一个数字,若两数字相等输出“Tacit!”(不包括引号),否则输出“No Tacit!”(不包括引号)。
输入描述
两个整数 x 和 y(在 int 范围内),分别代表小金和小财说出的数字。
输出描述
一行,按照题目表示这两个数字的关系。
示例 1
输入
1 | 1 10 |
输出
1 | No Tacit! |
示例 2
输入
1 | 0 0 |
输出
1 | Tacit! |
Solution
坑爹题目,Tacit!
这里的感叹号是全角 :(
1 |
|
F [NOIP2005]校门外的树
题目描述
某校大门外长度为
的马路上有一排树,每两棵相邻的树之间的间隔都是 米。我们可以把马路看成一个数轴,马路的一端在数轴 的位置,另一端在 的位置;数轴上的每个整数点,即 ,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区域中的树(包括区域端点处的两棵树)移走。你的任务是计算将这些树都移走后,马路上还有多少棵树。
输入描述
第一行有两个整数:
( )和 ( ), 代表马路的长度, 代表区域的数目, 和 之间用一个空格隔开。接下来的 行每行包含两个不同的整数,用一个空格隔开,表示一个区域的起始点和终止点的坐标。
输出描述
包括一行,这一行只包含一个整数,表示马路上剩余的树的数目。
示例 1
输入
1 | 500 3 |
输出
1 | 298 |
备注
对于 20%的数据,区域之间没有重合的部分;
对于其它的数据,区域之间有重合的情况。
Solution
没什么好的思路,用一个数组记录该点处的树是否存在,最后求和
1 |
|
G [NOIP2010]数字统计
题目描述
请统计某个给定范围
的所有整数中,数字 出现的次数。
比如给定范围,数字 在数 中出现了 次,在数 中出现 次,在数 中出现 次,在数 中出现 次,在数 中出现 次,所以数字 在该范围内一共出现了 次。
输入描述
输入共
行,为两个正整数 和 ,之间用一个空格隔开。
输出描述
输出共
行,表示数字 出现的次数。
示例 1
输入
1 | 2 22 |
输出
1 | 6 |
示例 2
输入
1 | 2 100 |
输出
1 | 20 |
备注
。
Solution
直接翻译题目就行
1 |
|
H 小名的回答
题目描述
总算到暑假了,小姐姐是非常的闲,所以想去找梅溪湖的小名玩,可是她从没去过梅溪湖,所以只能凭小名告诉她的地方走,每次只能向上下左右四个方向走
步。小姐姐的坐标为 ,小名在 ,小姐姐有点近视,小名也有点近视。所以到了 也不一定能和小名会面,不过还好,小姐姐最后找到了小名。小姐姐想要小名知道自己来一趟是多么不容易,所以在聊天的过程中小姐姐说自己为了到这里走了 步。小名,你觉得她说的可能是真话么。有可能就输出 YES,否则输出 NO(如果用 random 的话,小姐姐觉得你好像不在意她,明年暑假就不来了)
输入描述
a,b,n(
, , )
输出描述
"YES" or "NO"
示例 1
输入
1 | 2 2 4 |
输出
1 | YES |
示例 2
输入
1 | 1 9 2 |
输出
1 | NO |
Solution
可知最小步数应为
1 |
|
I 整数个数
题目描述
给定 k(k 大于 1 且小于 50)个正整数,其中每个数都是大于等于 1,小于等于 10 的数。写程序计算给定的 k 个正整数中,1,5 和 10 出现的次数。
输入描述
输入数据只有一组,第一行包含一个正整数 k(k 大于 1 且小于 100),第二行包含 k 个正整数,每两个正整数用一个空格分开。
输出描述
输出有三个数,第一个数为 1 出现的次数,第二个数为 5 出现的次数,第三个数为 10 出现的次数且后面没有多于的空格,每个数间用一个空格隔开,每两组数据间用一空行分开。
示例 1
输入
1 | 5 |
输出
1 | 1 2 1 |
Solution
直接翻译题目
1 |
|
J 矩阵转置
题目描述
KiKi 有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。
输入描述
第一行包含两个整数 n 和 m,表示一个矩阵包含 n 行 m 列,用空格分隔。 (
, )
从到 行,每行输入 m 个整数(范围 ),用空格分隔,共输入 个数,表示第一个矩阵中的元素。
输出描述
输出 m 行 n 列,为矩阵转置后的结果。每个数后面有一个空格。
示例 1
输入
2 3
1 2 3
4 5 6
输出
1 4
2 5
3 6
Solution
直接翻译题目
1 |
|
K 得不到的爱情
题目描述
Chranos 是个数学天才。
一天,有一个可爱的小女孩追求 Chranos,他知道 Chranos 最喜欢当且仅当总质量为 K 克的时候的番茄炒蛋了。她希望通过美食俘获 Chranos 的胃,这样就一定可以和他在一起了吧!虽然小女孩有无限数量的食材,但是数学王国的番茄和蛋非常特殊,他们的质量分别为 N 克和 M 克。为了表现一颗完整的心,表达充足的爱意,所有的食材必须被用完。N 和 M 都是正整数且互素,制作过程中既不会凭空增加质量,也不会凭空消失质量。
Chranos 不希望小女孩打扰他学数学。他发现,并不是所有番茄炒蛋都是可以被制作出来的。他想找出最大的不可以被制作出的总质量 K 来拒绝小女孩,这样 Chranos 就可以永远和数学在一起了!
输入描述
第一行为正整数
N
和M
()。
输出描述
输出最大的不可以被制作出的总质量 K。
示例 1
输入
1 | 2 3 |
输出
1 | 1 |
Solution
用到了塞瓦维斯特定理
对于
式子,当 均大于 且 互为素数( ),满足方程无整数解的 c 的最大值为 。
1 |
|
L 兔子的序列
题目描述
兔子发现了一个数字序列,于是开始研究这个序列。兔子觉得一个序列应该需要有一个命名,命名应该要与这个序列有关。由于兔子十分讨厌完全平方数,所以兔子开创了一个新的命名方式:这个序列中最大的不是完全平方数的数字就是他的名字。
现在兔子有一个序列,想要知道这个序列的名字是什么。
输入描述
第一行一个整数
,表示序列的长度。
第二行有个整数 ,表示序列中的 个数分别是多少。
输出描述
输出仅一行,表示这个序列的名字,也就是这个序列中最大的非完全平方数。
示例 1
输入
1 | 2 |
输出
1 | 2 |
示例 1
输入
1 | 8 |
输出
1 | 32 |
备注
对于 50%的数据:
对于 100%的数据:,
数据保证至少有一个非完全平方数
Solution
直接翻译题目
1 |
|
M 序列中整数去重
题目描述
输入 n 个整数的序列,要求对这个序列进行去重操作。所谓去重,是指对这个序列中每个重复出现的整数,只保留该数第一次出现的位置,删除其余位置。
输入描述
输入包含两行,第一行包含一个正整数
( ),表示第二行序列中数字的个数;第二行包含 个整数(范围 ),用空格分隔。
输出描述
输出为一行,按照输入的顺序输出去重之后的数字,用空格分隔。
示例 1
输入
1 | 5 |
输出
1 | 10 12 93 75 |
Solution
直接 map 记录是否存在就行
1 |
|
N 有序序列插入一个整数
题目描述
有一个有序数字序列,从小到大排序,将一个新输入的数插入到序列中,保证插入新数后,序列仍然是升序。
输入描述
第一行输入一个整数
( )。
第二行输入个升序排列的整数,输入用空格分隔的 N 个整数。
第三行输入想要进行插入的一个整数。
输出描述
输出为一行,
个有序排列的整数。
示例 1
输入
1 | 5 |
输出
1 | 10 12 93 75 |
Solution
理论上是插入排序,实际上是 STL
1 |
|
O 前天是哪天
题目描述
给定公元 2000 年到公元 3000 年之间的某一天,请你给出该天的前天是哪一天.
输入描述
输入在一个日期,格式如"yyyy-mm-dd",题目保证所有输入日期为合法日期。
输出描述
在一行中输出日期,格式如"yyyy-mm-dd"。
示例 1
输入
1 | 2020-11-15 |
输出
1 | 2020-11-13 |
备注
注意日期格式,月份或者天数不足 2 位要补零。
Solution
一个是补零,另一个是判断前天是否为去年,以及闰年时二月天数
1 |
|