关注
public static void getMax(int[] nums,int k){
int len=nums.length;
long[] preXor=new long[len];
preXor[0]=nums[0];
for (int i = 1; i < len; i++) {
preXor[i]^=nums[i];
}
//dp[i][j] 表示 分为 i 段 时 以 j为结尾的 最大异或和
long[][] dp = new long[k + 1][len];
dp[1]=preXor;
for (int i = 2; i <=k ; i++) {
for (int j = i-1; j < len; j++) {
long val=0;
for (int l = j-1; l >=0 ; l--) {
/* 多了一个数字 j ,
这个数字必然在 分段的最后一段中 ,最后一段分多长呢?
只能遍历 preXor[j]^preXor[l] 再 加 前面的数字 分为 i-1段
时的最大值
*/
val=Math.max(val,dp[i-1][l]+(preXor[j]^preXor[l]));
}
dp[i][j]=val;
}
}
System.out.println(dp[k][len-1]);
}
查看原帖
点赞 1
相关推荐
查看6道真题和解析 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# mt对你说过最有启发的一句话 #
6014次浏览 87人参与
# 市场营销人求职交流聚集地 #
165263次浏览 1224人参与
# 被上班搭子“传染”了哪些习惯 #
1958次浏览 53人参与
# 找工作有哪些冷知识 #
199939次浏览 2544人参与
# 工作后,你落下了哪些病根 #
4538次浏览 106人参与
# 打工人的精神状态 #
120464次浏览 1382人参与
# 工作中遇到的歹人 #
7659次浏览 126人参与
# 工作后明白的那些道理 #
37290次浏览 512人参与
# 今年秋招你收到了多少封邮件? #
4694次浏览 98人参与
# 什么是优秀的实习经历 #
1736次浏览 59人参与
# 选实习,你更看重哪方面? #
3833次浏览 71人参与
# 秋招特别不鸣谢 #
3852次浏览 53人参与
# 摸鱼被leader发现了怎么办 #
77828次浏览 453人参与
# 上班到公司第一件事做什么? #
116017次浏览 814人参与
# 考研失败就一定是坏事吗? #
161674次浏览 1149人参与
# 提前批过来人的忠告 #
141657次浏览 1322人参与
# 工作两年想退休了 #
210582次浏览 1870人参与
# 硬件人的简历怎么写 #
318284次浏览 3065人参与
# 你见过最离谱的招聘要求是什么? #
246814次浏览 1697人参与
# 假如你的老板掉河里,你的工作能为他做什么 #
43148次浏览 405人参与