陈坤


私信TA

用户名:uq_37574068137

访问量:447

签 名:

写的全是入门题

等  级
排  名 2475
经  验 2252
参赛次数 1
文章发表 2
年  龄 19
在职情况 学生
学  校 鄂州职业大学
专  业 移动互联

  自我简介:

TA的其他文章

算出所有结果
浏览:217

解题思路:因为只有三个矩形拼接,所以只用考虑三个矩形摆放的位置,有几种情况,最坏的结果是8个边,最好的结果有4个边,中等结果有6个边

注意事项:

参考代码:

static int[][] a=new int[3][2];//定义矩形空间
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       int T = scanner.nextInt();
       while (T--!=0) {
           //输入三个矩形的长和宽
           for (int i = 0; i < 3; i++){
               a[i][0]= scanner.nextInt();//保存矩形
               a[i][1]= scanner.nextInt();
           }
           int ans = 8;    //完全不匹配时的答案为8
           for (int i = 0; i < 3; i++) {   //枚举第一个矩形
               for (int j = 0; j < 3; j++) {
                   if (i != j) { //枚举第二个矩形
                       for (int k = 0; k < 3; k++) {
                           if (i != k && j != k) { //枚举第三个矩形
                               for (int ii = 0; ii <= 1; ii++) {        //枚举第一个矩形的长宽
                                   for (int jj = 0; jj <= 1; jj++) {     //枚举第二个矩形的长宽
                                       for (int kk = 0; kk <= 1; kk++)    //枚举第三个矩形的长宽
                                       {
                                           //第一个矩形的长等于后两个矩形的长之和
                                           if (a[i][ii] == a[j][jj] + a[k][kk]) {
                                               ans =Math.min(ans, 6);
                                               //后面两个矩形的宽相等
                                               if (a[j][1 - jj] == a[k][1 - kk])
                                                   ans = Math.min(ans, 4);
                                           }
                                           //三个矩形的长全部相等
                                           if (a[i][ii] == a[j][jj] && a[i][ii] == a[k][kk]) {
                                               ans = Math.min(ans, 4);
                                           }
                                           //至少有一个矩形的长和第一个矩形的长相等
                                           if (a[i][ii] == a[j][jj] || a[i][ii] == a[k][kk]) {
                                               ans = Math.min(ans, 6);
                                           }
                                       }
                                   }
                               }
                           }
                       }
                   }
               }
           }
           System.out.println(ans);
       }
   }
}

 

0.0分

2 人评分

  评论区

  • «
  • »