1.一些数字可以颠倒过来看,例如 00、11、88 颠倒过来还是本身,66 颠倒过来是 99,99 颠倒过来看还是 66,其他数字颠倒过来都不构成数字。类似的,一些多位数也可以颠倒过来看,比如 106106 颠倒过来是 901901。假设某个城市的车牌只由 55 位数字组成,每一位都可以取 00 到 99。请问这个城市最多有多少个车牌倒过来恰好还是原来的车牌?( )
單子の错题:集训错题整理
2.#include
using namespace std;
const int maxn = 10000;
int n;
int a[maxn];
int b[maxn];
int f(int l, int r, int depth) {
if (l > r)
return 0;
int min = maxn, mink;
for (int i = l; i <= r; ++i) {
if (min > a[i]) {
min = a[i];
mink = i;
}
}
int lres = f(l, mink - 1, depth + 1);
int rres = f(mink + 1, r, depth + 1);
return lres + rres + depth * b[mink];
}
int main() {
cin >> n;
for (int i = 0; i < n; ++i)
cin >> a[i];
for (int i = 0; i < n; ++i)
cin >> b[i];
cout << f(0, n - 1, 1) << endl;
return 0;
}
当 n=100n=100 时,若 bb 数组满足,对于任意 0 \le i < n0≤i<n,都有 b[i] = 1b[i]=1,那么输出最小为( )
【解析】已知b[0] = 1, b[1] = 2, …, b[9] = 10,要输出最大值,即depth * b[mink]的和最大,那么depth的值应该尽可能的大。与上道题类似,数组a[]中元素是有序的,才能保证归深度最大,最大值 = 1 × 1 + 2 × 2 + 3 × 3 + . . . + 10 × 10 = 385 =1 \times\ 1+ 2 \times 2 + 3 \times 3 + … + 10 \times 10=385 =1× 1+2×2+3×3+…+10×10=385。
3.(矩阵变换)有一个奇幻的矩阵,在不停的变幻,其变幻方式为:数字 00 变成矩阵 ,数字 11 变成矩阵 。最初该矩阵只有一个元素 00,变幻 nn 次后,矩阵会变成什么样?

例如,矩阵最初为:[ 0 ][0];矩阵变幻一次后:;矩阵变幻 22 次后:。

输入一行一个不超过 1010 的正整数 nn。输出变幻 nn 次后的矩阵。

试补全程序。

提示:

<< 表示二进制左移运算符,例如 (11)_{2} << 2 = (1100)_2(11)
2

<<2=(1100)
2

而 ^ 表示二进制异或运算符,它将两个运算的数中的每个对应的二进制位一一进行比较,若两个二进制位相同,则运算结果的对应二进制位为 00,反之为 11。

1
#include
2
using namespace std;
3
int n;
4
const int max_size = 1 << 10;
5

6
int res[max_size][max_size];
7

8
void recursive(int x, int y, int n, int t) {
9
if (n == 0) {
10
res[x][y] = ①;
11
return;
12
}
13
int step = 1 << (n - 1);
14
recursive(②, n - 1, t);
15
recursive(x, y + step, n - 1, t);
16
recursive(x + step, y, n - 1, t);
17
recursive(③, n - 1, !t);
18
}
19

20
int main() {
21
scanf("%d", &n);
22
recursive(0, 0, ④);
23
int size = ⑤;
24
for (int i = 0; i < size; i++) {
25
for (int j = 0; j < size; j++)
26
printf("%d", res[i][j]);
27
puts("");
28
}
29
return 0;
30
}

③ 处应填( )
空①,递归结束条件,当n == 0时,此时:res[x][y] = t。
空②,递归处理左上角的矩阵,其左上角的坐标就是:x,y
空③,递归处理右下角的矩阵,其左上角的坐标为:x+step,y+step
空④,初始情况:n, 0
空⑤:经过n次变换后,矩阵的大小为 2 n × 2 n 2n\times2n 2
n
×2
n
,size为矩阵的行列个数,所以次空应为1<<n。

單子の错题:集训错题整理

相关文章: