关注
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
牛客热帖
更多
正在热议
更多
# 找工作能把i人逼成什么样 #
15640次浏览 179人参与
# 上班到公司第一件事做什么? #
110313次浏览 755人参与
# 你今年做了几份实习? #
10526次浏览 156人参与
# 工作两年想退休了 #
204400次浏览 1813人参与
# 一上班就想____,这正常吗? #
5805次浏览 100人参与
# 参加过提前批的机械人,你们还参加秋招么 #
103899次浏览 1641人参与
# 大厂面试初体验 #
83883次浏览 385人参与
# 如果公司降薪,你会跳槽吗? #
111542次浏览 720人参与
# 金三银四,你有感觉到吗 #
663389次浏览 6032人参与
# 大学最后一个寒假,我想…… #
72435次浏览 727人参与
# 大家每天通勤多久? #
64630次浏览 415人参与
# 面试尴尬现场 #
205915次浏览 823人参与
# 什么样的公司千万别去 #
28328次浏览 149人参与
# 春招你拿到offer了吗 #
762567次浏览 9777人参与
# 运营面经 #
146190次浏览 1323人参与
# 用一句话形容你的团队氛围 #
29229次浏览 248人参与
# 第一份工作应该选高薪还是热爱? #
141409次浏览 1050人参与
# 你找工作的时候用AI吗? #
163309次浏览 857人参与
# 一起聊华为 #
168958次浏览 822人参与
# 0经验如何找实习? #
27852次浏览 463人参与
查看10道真题和解析