zoukankan      html  css  js  c++  java
  • A 暴力搜索 剪枝是关键

    Description

    盖伦是个小学一年级的学生,在一次数学课的时候,老师给他们出了一个难题:
    老师给了一个正整数 n,需要在不大于n的范围内选择三个正整数(可以是相同的),使它们三个的最小公倍数尽可能的大。盖伦很想第一个解决这个问题,你能帮助盖伦拿到“first blood”吗?


    Input

    首先是一个正整数T,表示有T组测试数据
    每组测试数据是一个正整数n(1<=n<=10^6)

    Output

    对于每组测试数据,输出最大的最小公倍数,每个输出单独占一行

    Sample Input

    2
    9
    7

    Sample Output

    504
    210

     1 # include <cstdio>
     2 # include <cstring>
     3 # include <iostream>
     4 # define LL long long
     5 using namespace std ;
     6 
     7 LL gcd(LL a,LL b)
     8 {   if(b==0)
     9       return a;
    10     return gcd(b,a%b);
    11 }
    12 
    13 LL lcm(LL a,LL b)
    14 {
    15     return a/gcd(a,b)*b;
    16 }
    17 
    18 
    19 int main ()
    20 {
    21    // freopen("in.txt","r",stdin) ;
    22     int T ;
    23     cin>>T ;
    24 
    25     while (T--)
    26     {
    27         LL n ;
    28         cin>>n ;
    29         LL i , j , k , Max = 0;
    30         LL t ;
    31         for (i = n ; i >= 1 ; i--)
    32         {
    33             if (i*i*i < Max)
    34                      break ;
    35 
    36             for (j = n ; j >= 1 ; j--)
    37             {
    38                 if (i*j*j < Max)
    39                      break ;
    40 
    41                 for (k = n ; k >= 1 ; k--)
    42                 {
    43                     if (i*j*k < Max)
    44                      break ;
    45                      t = lcm(i,lcm(j,k)) ;
    46                        if (t > Max)
    47                          Max = t ;
    48 
    49                 }
    50             }
    51         }
    52         cout<< Max<<endl ;
    53     }
    54 
    55 
    56 
    57     return 0 ;
    58 }
    View Code
  • 相关阅读:
    实验四 主存空间的分配和回收模拟
    实验一
    实验3观后感
    实验三进程调度模拟程序
    实验2作业调度
    0909 学习操作系统
    实验四 主存空间的分配和回收模拟
    实验三 同学互评
    实验三 进程调度模拟程序
    实验二 作业调度模拟程序
  • 原文地址:https://www.cnblogs.com/mengchunchen/p/4528259.html
Copyright © 2011-2022 走看看