题库首页 › 信息学奥赛 › 题目 15479

完善程序(2) 6-10题 组合题 (最优子序列)取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时的最大价值。 试补全程序。

完善程序(2) 6-10题 组合题 (最优子序列)取m=6, 题目配图完善程序(2) 6-10题 组合题 (最优子序列)取m=6, 题目配图完善程序(2) 6-10题 组合题 (最优子序列)取m=6, 题目配图

试卷来源:2020 CSP-S提高级(第一轮)C++真题

本卷相关题目

在线做题 同科目题库