#J0010. CSP-J2025 初赛模拟卷10
CSP-J2025 初赛模拟卷10
CSP-J 2025初赛模拟卷 10
一、单项选择题(共 15 题,每题 2 分,共计 30 分)
第 1 题 以下扩展名结尾的文件,不是多媒体文件的是( )。
{{ select(1) }}
- mp3
- txt
- avi
- jpg
第 2 题 以下关于链表和数组的描述中,错误的是( )。
{{ select(2) }}
- 数组和链表都可以排序
- 数组中查询元素的效率比较高
- 链表中插入和删除元素的效率比较高
- 向量和静态数组一样,不能动态调整数组大小
第 3 题 与 C++ 语言中的 cout using namespace std; const int N = 2e4 + 5, inf = 2e9 + 7; int n, a[N], ans = inf; int main() { scanf("%d", &n); for (int i = 1; i 改成 ``,程序仍能正常运行。( )
{{ select(18) }}
- 对
- 错
选择题
19. 若输入 41367,则输出为( )。
{{ select(19) }}
- 0
- 1
- 2
- 3
- (4分) 若输入
728915171816,则输出为( )。
{{ select(20) }}
- 2
- 3
- 4
- 5
(2)
#include
using namespace std;
int n, m, k, l, r, mid;
bool check(int g) {
int st = 1, ed = m, cnt = 0;
while (st = 1) {
if (st * ed > g)
ed--;
else {
cnt += ed;
st++;
}
}
return cnt >= k;
}
int main() {
scanf("%d%d%d", &n, &m, &k);
l = 1, r = n * m;
while (l
using namespace std;
const int N = 10;
int dx[10] = {0, 1, 0, -1}, dy[10] = {1, 0, -1, 0};
int n, m, ans;
char c[N][N];
void dfs(int x) {
if (!x)
return ++ans, void();
vector v;
v.clear();
for (int i = 1; i = 1 && tx = 1 && ty
using namespace std;
const int N = 2e5 + 5;
bool book[N];
char s1[N], s2[N];
vector num;
int n = 1, len1, len2, ans, operation[N];
bool check(int x) {
num.clear();
for (int i = x + 1; i r`
- `l == r`
- `l >= r`
- `l != r`
37. ⑤处应填( )。
{{ select(37) }}
- `scanf("%d", &operation[n])`
- `~scanf("%d", &operation[n])`
- `!(cin >> operation[n])`
- `!scanf("%d", &operation[n])`
### (2) 题目描述
如果存在一个长度为 n 的排列(即该排列由 1, 2, 3, ..., n 这 n 个数字各出现一次组成),对于所有满足 2 ≤ i ≤ n - 1 的整数 i,都有 `a[i-1] ≤ a[i] ≤ a[i+1]` 或者 `a[i-1] ≥ a[i] ≥ a[i+1]` 成立,则称这个序列为一个山峰山谷序列。对所有长度为 n 的山峰山谷序列排序,求字典序第 k 大的排列。
```cpp
#include
using namespace std;
const int N = 15;
int n, k, dp[N][N][2], ans[N], vis[N];
int main() {
scanf("%d%d", &n, &k);
dp[1][1][0] = dp[1][1][1] = 1;
dp[2][1][0] = dp[2][2][1] = 1;
for (int i = 2; i = 2 && ans[i - 2] = k) {
las = j;
break;
}
k -= x;
}
int cnt = 0;
for (int k = 1; k <= las; ++k)
if (!vis[k])
cnt++;
④;
ans[i] = las, vis[las] = 1;
}
for (int i = 1; i <= n; ++i)
printf("%d ", ans[i]);
return 0;
}
- ①处应填( )。
{{ select(38) }}
j < kj <= ki < ki <= k
- ②处应填( )。
{{ select(39) }}
dp[i + 1][k][1] += dp[i][j][0]dp[i + 1][k][0] += dp[i][j][1]dp[i + 1][j][1] += dp[i][k][0]dp[i + 1][j][0] += dp[i][k][1]
- ③处应填( )。
{{ select(40) }}
ans[i - 1] + 1ans[i - 2] + 1i + 1ans[i - 1]
- ④处应填( )。
{{ select(41) }}
dp[n - i + 1][cnt][ans[i - 1]]dp[n - i + 1][cnt][ans[i - 1]]dp[n - i + 1][j - cnt][ans[i - 1]]dp[n - i + 1][j - cnt][ans[i - 1]]
- ⑤处应填( )。
{{ select(42) }}
k -= xk -= x * (n - i + 1)k -= x * cntk -= x * mk