万卷网 > 题目详情
题型:组合题

(最优子序列)取m=6,给出长度为n的整数序列a1,a2,……an(0 ≤ ai<2m)。对于一个二进制数x,定义其分值w(x)为x + popcnt(x),其中 popcnt(x)表示x二进制表示中1的个数。对于一个子序列b1,b2,…,bk,定 义其子序列分值S为w(b1㊉b2)+w(b2㊉b3)+w(b3㊉b4)+……+w(bk-1㊉bk)。其中㊉表示按位异或。对于空子序列,规定其子序列分值为0。求一个子序列使得其子序列分值最大,输出这个最大值。

输入第一行包含一个整数n(1 ≤ n ≤  40000).接下来一行包含n个整数 a1,a2,……,an。

提示:考虑优化朴素的动态规划算法,将前位和后位分开计算。

Max[x][y]表示当前的子序列下一个位置的高8位是X、最后一个位置的 低8位是y时的最大价值。

试补全程序。

(1).

③处应填()

A.

-INF

B.

 Max[y] [x]

C.

0

D.

Max[x][yJ

(2).

②处应填()

A.

(a & MS) « B

B.

a>>B

C.

a&(1<<B)

D.

a&(MS<<B)

(3).

⑤处应填()

A.

to_max(Max[y][z],v + w(a ^(z << B)))

B.

to_max(Max[z][y],v + w((x ^ z) << B))

C.

to_max(Max[zJ[y],v + w(a ^ (z << B)))

D.

to_max(Max[x][z],v + w(y ^ z))

(4).

④处应填()

A.

Max[x] [z]+w(y^z)

B.

Max[x][z] + w(a ^ z)

C.

Max[x] [z]+w(x^(z<<B))

D.

Max[x][z] + w(x ^ z)

(5).

①处应填()

A.

X >>= 1

B.

X ^=X & (x ^ (x + 1))

C.

X -= X | -X

D.

X ^= X & (X ^ (x - 1))

更新时间:2022-12-07 20:16:34 |
【知识点】 CCF非专业级别软件能力认证CSP-S/提高级

相似题推荐

简答题

T4员工招聘

2026-04-17
简答题

T1社团招新

2026-04-17
简答题

T2道路修复

2026-04-17
简答题

T3谐音替换

2026-04-16
单选题

对一个大小为16(下标0-15)的数组构建满线段树,查询区间[3,11]时,最少需要访问多少个树结点(包括路径上的父结点和完全包含在查询区间内的结点)?

A.

7

B.

8

C.

9

D.

10

2025-10-17
公众号
客服 反馈
顶部