加油!
(下面是Deepseek生成的模拟题)
合肥市48中滨湖校区信息学校选机试模拟题(C++ 初中组)
(满分:100分,时间:120分钟)
考试环境: C++ (建议使用 C++11 及以上标准)
提交要求: 每道题单独一个源文件,如 problem1.cpp。
问题一:质数进制(20分)
【问题描述】
在一种特殊的质数进制中,第 i 位上的权值是第 i 个质数(p₁=2, p₂=3, p₃=5, p₄=7,...)。例如:
-
十进制数
3表示为1 0(因为 1×3 + 0×2 = 3) -
十进制数
7表示为1 0 0(因为 1×5 + 0×3 + 0×2 = 5 ≠ 7? 注意:应为 1×7 + 0×5 + 0×3 + 0×2 = 7)
更正规则: 数字的表示是从右向左,权重从小到大(最右边是最小质数2)。
更正的例子:
-
3 = 1×3 + 0×2 → 表示为
1 0(从左到右是高位到低位) -
7 = 1×7 + 0×5 + 0×3 + 0×2 → 表示为
1 0 0 0
给定一个十进制正整数 n,请将其转换为这种质数进制表示。
**【输入格式】
一个整数 n (2 ≤ n ≤ 10000)
【输出格式】
一串数字序列,表示质数进制下的结果,数字之间用空格隔开。
【样例输入1】
text
复制
下载
7
【样例输出1】
text
复制
下载
1 0 0 0
【样例输入2】
text
复制
下载
10
【样例输出2】
text
复制
下载
0 1 0 1
解释:10 = 0×7 + 1×5 + 0×3 + 1×2 = 5 + 2 = 7? 不对,应该是 10 = 1×7 + 0×5 + 1×3 + 0×2 = 7 + 3 = 10,所以是 1 0 1 0(从左到右是高位到低位)
注意: 我们需要重新澄清规则。实际上标准的质数进制表示是这样的:
n = a₁×p₁ + a₂×p₂ + a₃×p₃ + ... 其中 0 ≤ aᵢ < pᵢ₊₁/pᵢ? 不,更简单的方法是贪心算法:
正确算法: 从最大的质数权重开始减。
让我们重新定义:质数列表为 [2,3,5,7,11,...],表示时从大到小排列权重。
例如 10:
-
找到不超过10的最大质数权重是7
-
10 ÷ 7 = 1 余 3 → 第一位是1
-
余数3,下一个质数是5,但5>3,所以该位是0
-
下一个质数是3,3÷3=1余0 → 第二位是1
-
余数0,后面都是0
所以10表示为 1 0 1 0(从7的权重到2的权重)
【输入格式】
一个整数 n (2 ≤ n ≤ 10000)
【输出格式】
从最高位到最低位的数字序列,用空格分隔
【样例输入1】
text
复制
下载
10
【样例输出1】
text
复制
下载
1 0 1 0
【样例输入2】
text
复制
下载
7
【样例输出2】
text
复制
下载
1 0 0 0
问题二:最少操作次数(25分)
【问题描述】
给定一个长度为 n 的整数数组,每次操作可以选择一个元素将其加1或减1。求最少需要多少次操作,可以使得数组中任意两个相邻元素的乘积为偶数(即相邻元素至少有一个是偶数)。
【输入格式】
第一行一个整数 n (2 ≤ n ≤ 1000)
第二行 n 个整数 a₁, a₂, ..., aₙ (1 ≤ aᵢ ≤ 1000)
【输出格式】
一个整数,表示最少操作次数
【样例输入】
text
复制
下载
5 1 2 3 4 5
【样例输出】
text
复制
下载
2
解释:可以把第一个1加1变成2,或者把第三个3加1变成4,等等。
问题三:最长优质子序列(30分)
【问题描述】
我们称一个序列是"优质"的,如果这个序列的任意两个相邻元素的差正好是1。现在给定一个长度为 n 的整数序列,请找出最长的连续优质子序列的长度。
【输入格式】
第一行一个整数 n (1 ≤ n ≤ 100000)
第二行 n 个整数 a₁, a₂, ..., aₙ (1 ≤ aᵢ ≤ 100000)
【输出格式】
一个整数,表示最长优质子序列的长度
【样例输入】
text
复制
下载
8 1 2 3 2 3 4 5 4
【样例输出】
text
复制
下载
5
解释:子序列 2 3 4 5 4 或 3 2 3 4 5 都满足条件,长度为5。
问题四:数字重组(25分)
【问题描述】
给定一个正整数 n,你可以重新排列它的各位数字(不能有前导0),求能够得到的最大素数。如果无法重组得到任何素数,输出 -1。
【输入格式】
一个整数 n (1 ≤ n ≤ 1000000)
【输出格式】
一个整数,表示最大素数,或 -1
【样例输入1】
text
复制
下载
137
【样例输出1】
text
复制
下载
731
解释:137可以重组成173, 317, 371, 713, 731,其中731是最大的素数。
【样例输入2】
text
复制
下载
246
【样例输出2】
text
复制
下载
-1
解释:246只能重组成246, 264, 426, 462, 624, 642,都不是素数。
李子墨在2025-10-10 19:47:13追加了内容
校选题目:
1.直播获奖(略,score)
2.大写数字(略,big)
3.超级感染源(super)
4.相同字符(same)
t3:
输入被感染者和传播者(也就是感染前者的人,若是0则前者为感染源)
其中,感染人数定义为直接传播+间接传播(1->2,2->3,则1->3)
输出感染人数最多的id最小的人。
思路:s数组存感染源(sort一下)ill数组存感染源头(最终端),t数组计数
t4:
给出字符串(只有xy),每次操作:
将x变成xx
将y变成xy
输出这两个字符串的同一位置上同样字符数
思路:模拟60分,数学优化100分(我cai所以选择60分)
估分:100+90(忘特判了)+100+60(应该皆大欢喜)
但
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
……
实际上:0???(未知原因)
校选pass,只能看CSP-J把我带进省赛了QAQ


