关注
import java.util.Scanner; /** * @author cwz * @date 2018-08-help2 */ public class help2 { public static void main(String[] args){ final int OFFSET = 100000; int[][] dp = new int[101][200001]; int[][] totalValue = new int[101][200001]; int[][] buf = new int[101][2]; Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=1; i<=n; i++){ int x = sc.nextInt(); int y = sc.nextInt(); buf[i][0] = x; buf[i][1] = y; } for(int i=-100000; i<=100000; i++){ dp[0][i+OFFSET] = Integer.MIN_VALUE; totalValue[0][i+OFFSET] = Integer.MIN_VALUE; } dp[0][0+OFFSET] = 0; totalValue[0][0+OFFSET]=0; for(int i=1;i<=n;i++){ for(int j=-100000; j<=100000; j++){ int tmp1 = Integer.MIN_VALUE, tmp2 = Integer.MIN_VALUE; if(j+buf[i][0] <= 100000 && dp[i-1][j+buf[i][0]+OFFSET]!=Integer.MIN_VALUE){ tmp1 = totalValue[i-1][j+buf[i][0]+OFFSET] + buf[i][1]; } if(j-buf[i][0] >= -100000 && dp[i-1][j-buf[i][0]+OFFSET]!=Integer.MIN_VALUE){ tmp2 = totalValue[i-1][j-buf[i][0]+OFFSET] + buf[i][1]; } if(tmp1 < tmp2) tmp1 = tmp2; if(tmp1 < totalValue[i-1][j+OFFSET]) tmp1 = totalValue[i-1][j+OFFSET]; totalValue[i][j+OFFSET] = tmp1; } } System.out.println(totalValue[n][0+OFFSET]); } }
查看原帖
点赞 评论
牛客热帖
更多
正在热议
更多
# 你小心翼翼的闯过多大的祸? #
3911次浏览 68人参与
# 找不到实习会影响秋招吗 #
1399772次浏览 13635人参与
# 实习没事做是福还是祸? #
4235次浏览 68人参与
# 重来一次,你会对开始求职的自己说 #
925次浏览 19人参与
# 2025年终总结 #
134295次浏览 2293人参与
# 考研人,我有话说 #
156582次浏览 1211人参与
# 哪些公司笔/面试难度大? #
7062次浏览 32人参与
# 实习简历求拷打 #
24003次浏览 249人参与
# 你觉得现在还能进互联网吗? #
29952次浏览 201人参与
# 携程工作体验 #
18945次浏览 66人参与
# 大厂VS公务员你怎么选 #
69134次浏览 638人参与
# 扒一扒那些奇葩实习经历 #
140169次浏览 1149人参与
# 找不到好工作选择GAP真的丢人吗 #
93692次浏览 1007人参与
# 那些我实习了才知道的事 #
253085次浏览 1785人参与
# 非技术投递记录 #
672911次浏览 6820人参与
# 机械求职避坑tips #
81070次浏览 531人参与
# 投格力的你,拿到offer了吗? #
154919次浏览 829人参与
# 第一份工作能做外包吗? #
94054次浏览 599人参与
# 作业帮求职进展汇总 #
85454次浏览 559人参与
# 秋招遇到的奇葩面试题 #
101255次浏览 416人参与

