关注
第一题01背包public static int ks(int[] day, int[] value, int day1) { int size = day.length; if (size == 0) { return 0; } int[][] dp = new int[size][day1 + 1]; for (int i = 0; i <= day1; i++) { dp[0][i] = day[0] <= i ? value[0] : 0; } for (int i = 1; i < size; i++) { for (int j = 0; j <= day1; j++) { dp[i][j] = dp[i - 1][j]; if (day[i] <= j) { dp[i][j] = Math.max(dp[i][j], value[i] + dp[i - 1][j - day[i]]); } } } return dp[size - 1][day1]; } public static void main(String[] args) { Scanner scan=new Scanner(System.in); int num=scan.nextInt(); for(int i=0;i<num;i++) { int num1=scan.nextInt(); int day=scan.nextInt(); int[] value=new int [num1]; int []day1=new int[num1]; for(int j=0;j<num1;j++) { value[j]=scan.nextInt(); day1[j]=scan.nextInt(); } System.out.println(ks(day1,value,day)); } } 第三题我是用的递归求解约束判断 因为会重复的 所有我先存了一下判断,代码比较low 不 喜勿喷 public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan=new Scanner(System.in); int num1=scan.nextInt(); int num2=scan.nextInt(); int [] price=new int[num2]; for(int i=0;i<num2;i++) { price[i]=scan.nextInt(); } int like=scan.nextInt(); int []likeall=new int[like]; for(int i=0;i<like;i++) { likeall[i]=scan.nextInt()-1; } int []count=new int[num2]; int []countall=new int[1]; countall[0]=0; int [] []flagg=new int[1000][num2]; int []nums={0}; dfs(num1,price,count,likeall,countall,flagg,nums); System.out.print(countall[0]); } public static void dfs(int num,int []price,int []count,int []like,int []countall,int[][]flagg,int[] nums) { for(int i=0;i<price.length;i++) { num=num-price[i]; count[i]++; if(num<0){ count[i]--; return; } if(num==0) { int flag=1; for(int j=1;j<like.length;j++) { if(count[like[j]]-count[like[j-1]]>=0) { flag=0; } } if(flag==1) { for(int q=0;q<flagg.length;q++) { int flags=0; for(int y=0;y<count.length;y++) { if(flagg[q][y]!=count[y]) { flags=1; break; } } if(flags==0) { count[i]--; return; } } for(int x = 0;x<count.length;x++) { flagg[nums[0]][x]=count[x]; } nums[0]++; countall[0]++; } count[i]--; return ; } if(num>0) { dfs(num,price,count,like,countall,flagg,nums); count[i]--; num=num+price[i]; } } return; }
查看原帖
点赞 1
相关推荐
11-28 19:45
哈尔滨理工大学 算法工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
11-28 17:48
中山大学 C++ 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
447725次浏览 4577人参与
# 如何排解工作中的焦虑 #
72251次浏览 1008人参与
# 地方国企笔面经互助 #
8176次浏览 18人参与
# 找工作时遇到的神仙HR #
564840次浏览 3848人参与
# 实习,投递多份简历没人回复怎么办 #
2457412次浏览 34879人参与
# 虾皮求职进展汇总 #
119918次浏览 904人参与
# 同bg的你秋招战况如何? #
80068次浏览 590人参与
# 现在还是0offer,延毕还是备考 #
826047次浏览 6924人参与
# 春招别灰心,我们一人来一句鼓励 #
43550次浏览 549人参与
# 提前批简历挂麻了怎么办 #
150252次浏览 1980人参与
# 校招入职后的感受 #
162714次浏览 1987人参与
# 发工资后,你做的第一件事是什么 #
13247次浏览 62人参与
# 实习必须要去大厂吗? #
56057次浏览 962人参与
# 查收我的offer竞争力报告 #
37400次浏览 422人参与
# 如果公司给你放一天假,你会怎么度过? #
4822次浏览 58人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
12180次浏览 311人参与
# 百度秋招提前批进度 #
87648次浏览 1037人参与
# 听劝,这个公司值得去吗 #
330630次浏览 1339人参与
# 实习想申请秋招offer,能不能argue薪资 #
39561次浏览 314人参与
# 投递实习岗位前的准备 #
1196927次浏览 18557人参与