下载资源前端资源详情
src.zip
大小:22.07KB
价格:10积分
下载量:0
评分:
5.0
上传者:Bainianjieke
更新日期:2025-09-22

2112312312321321

资源文件列表(大概)

文件名
大小
src/
-
src/Main.java
1.18KB
src/Problem01_AC.java
1.21KB
src/Problem02_AC.java
34B
src/Problem03_AC.java
887B
src/Problem04_AC.java
765B
src/Problem05_AC.java
32B
src/Problem06_AC.java
795B
src/Problem07_AC.java
871B
src/Problem08_AC.java
396B
src/Problem09_AC.java
850B
src/Problem10_AC.java
802B
src/Problem11_AC.java
759B
src/Problem12_AC.java
806B
src/Problem13_AC.java
775B
src/Problem14_AC.java
605B
src/Problem15_AC_W.java
993B
src/Problem16_AC.java
968B
src/Problem17_AC.java
1.19KB
src/Problem18_AC.java
1.02KB
src/Problem19_AC_W.java
913B
src/Problem20_AC.java
1.12KB
src/Problem21_AC_W.java
726B
src/Problem22_AC.java
1KB
src/Problem23.java
3KB
src/Problem24.java
1.45KB
src/Problem25_AC.java
848B
src/Problem26_AC_W.java
529B
src/Problem27_AC_W.java
699B
src/Problem28.java
969B
src/Problem29.java
849B
src/Problem30_AC.java
1.86KB
src/Problem31_AC_W.java
1016B
src/Problem32_AC_W.java
616B
src/Problem33_AC.java
602B
src/Problem34_AC.java
666B
src/Problem35_AC.java
606B
src/Problem36_AC.java
1.21KB
src/Problem37.java
535B
src/Solution.java
726B
src/Test.java
312B

资源内容介绍

2112312312321321
import java.util.*;import java.util.stream.Collectors;// 大礼包public class Problem23 { static List<Integer> price = new ArrayList<>(); static List<List<Integer>> specials = new ArrayList<>(); static int trackCost = 0; static int minCost = Integer.MAX_VALUE; public static void main(String[] args) { Scanner sc = new Scanner(System.in); List<Integer> priceAndNum = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList()); int num = 0; for (int i = 0; i < priceAndNum.size(); i++) { if (i == priceAndNum.size()-1) { num = priceAndNum.get(i); } else { price.add(priceAndNum.get(i)); } } for (int i=1; i<=num; i++) { specials.add(Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList())); } List<Integer> needs = Arrays.stream(sc.nextLine().split(" ")).mapToInt(Integer::valueOf).boxed().collect(Collectors.toList()); List<List<Integer>> newSpecials = new ArrayList<>(); for (int i = 0; i < specials.size(); i++) { List<Integer> special = specials.get(i); int cost = 0; for (int j = 0; j < special.size() - 1; j++) { cost += special.get(j) * price.get(j); } if (cost > special.get(special.size() - 1)) { newSpecials.add(special); } } backtrack(needs, 0); System.out.println(minCost); } static void backtrack(List<Integer> needs, int start) { if (trackCost >= minCost) { return; } boolean haveUsedSpecial = false; for (int i = start; i < specials.size(); i++) { List<Integer> targetSpecial = specials.get(i); if (!canUseSpecial(targetSpecial, needs)) { continue; } haveUsedSpecial = true; for (int j = 0; j < needs.size(); j++) { needs.set(j, needs.get(j) - targetSpecial.get(j)); } trackCost += targetSpecial.get(targetSpecial.size() - 1); backtrack(needs, i); for (int j = 0; j < needs.size(); j++) { needs.set(j, needs.get(j) + targetSpecial.get(j)); } trackCost -= targetSpecial.get(targetSpecial.size() - 1); } if (!haveUsedSpecial) { int sum = 0; for (int i = 0; i < needs.size(); i++) { sum += needs.get(i) * price.get(i); } minCost = Math.min(minCost, sum + trackCost); } } static boolean canUseSpecial(List<Integer> special, List<Integer> need) { for (int i = 0; i < need.size(); i++) { if (need.get(i) < special.get(i)) { return false; } } return true; }}

用户评论 (0)

发表评论

captcha