首页 > 其他 > 详细

codeforce F. Multicolored Markers

时间:2019-10-23 00:34:07      阅读:131      评论:0      收藏:0      [点我收藏+]

 

http://codeforces.com/contest/1029/problem/F

 

这道题真的一点都不难……………………………………………………

 

对于大矩形面积a+b,从差距最小的因数开始遍历,直到遇到第一个a、b中的任何一个,能变成一个矩形并能放在大矩形中(因为最后的大矩形的面积一定等于a+b,所以剩余空间一定可以填补),我们就找到了解。

 

 1 import java.util.*;
 2 
 3 public class A {
 4     public static void main(String[] args) {
 5         Scanner io = new Scanner(System.in);
 6         long a = io.nextLong(), b = io.nextLong(), c = a + b;
 7         long min = 0, max = 0;
 8 
 9         for (long i = (long) Math.sqrt(c); i >= 1; i--) {
10             if (c % i == 0) {
11                 min = i;
12                 max = c / i;
13 
14                 //当两个因数差距越来越大时,max的长度比min大一倍多,所以max妥妥超时
15                 for (long j = min; j >= 1; j--) {
16                     if (a % j == 0 && a / j <= max || b % j == 0 && b / j <= max) {
17                         System.out.println((min + max) * 2);
18                         return;
19                     }
20                 }
21             }
22         }
23 
24     }
25 }

 

codeforce F. Multicolored Markers

原文:https://www.cnblogs.com/towerbird/p/11723599.html

(1)
(1)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!