解题思路:
注意事项:
参考代码:
import java.lang.reflect.Array; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class 积木游戏 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub /*题目 1549: [蓝桥杯][算法提高VIP]盾神与积木游戏*/ Scanner scanner=new Scanner(System.in); int m=scanner.nextInt(); for (int i = 0; i <m; i++) { int n=scanner.nextInt(); Integer [][]dp=new Integer[n][2]; for (int j = 0; j <n; j++) { dp[j][0]=scanner.nextInt(); dp[j][1]=scanner.nextInt(); } //收取完数据 Arrays.sort(dp,new Comparator<Integer []>() {//对所需积木差就行降序排列 @Override public int compare(Integer[] arg0, Integer[] arg1) { // TODO Auto-generated method stubS return (arg0[1]-arg0[0])-(arg1[1]-arg1[0])>0?1:-1; } }); int num=0; boolean flag=true; for (int j = 0; j <n; j++) { if (dp[j][0]+num>=dp[j][1]) { num+=dp[j][0]; } else { flag=false; } } if (flag) { System.out.println("YES"); } else { System.out.println("NO"); } } } }
0.0分
0 人评分