博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 6298 Maximum Multiple(规律)
阅读量:4965 次
发布时间:2019-06-12

本文共 1208 字,大约阅读时间需要 4 分钟。

hdu6298 Maximum Multiple

题意:

给你一个整数n,从中找出可以被n整除的三个数x,y,z;

要求x+y+z=n,且x*y*z最大。

思路:

开始一看T到1e6,n也到1e6,就想到打表,可是打表就只输出最大值

没有把取的那三个数也数出来,纠结了许久。

正解就是设a=n/x,b=n/y,c=n/z;

则1/a+1/b+1/c=1;

则abc可取3,3,3;2,3,6;2,4,4

代码:

#include
using namespace std;#define N 100typedef long long ll;/*int main(){ int m; while(cin>>m) { for(int n=1;n<=m;n++){ long long ans=-1; int a=0,b=0,c=0; for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { for(int k=1;k<=n;k++) { if(n%i==0&&n%j==0&&n%k==0&&i+j+k==n) { long long tmp=i*j*k; if(ans
>T; while(T--){ cin>>n; ll ans=-1; ll x,y,z; if(n%2==0) { x=n/2,y=n/3,z=n/6; if(x+y+z==n&&x*y*z>ans) ans=x*y*z; x=n/2,y=n/4,z=n/4; if(x+y+z==n&&x*y*z>ans) ans=x*y*z; } if(n%3==0){ x=n/3,y=n/3,z=n/3; if(x+y+z==n&&x*y*z>ans) ans=x*y*z; } cout<
<
View Code

 

转载于:https://www.cnblogs.com/zhgyki/p/10330711.html

你可能感兴趣的文章
mysql 根据日期时间查询数据
查看>>
mysql 创建时间字段
查看>>
mysql 生成随机数rand()
查看>>
mysql e的n次幂exp()
查看>>
mysql sin() 函数
查看>>
mysql upper() 函数
查看>>
mysql 子查询
查看>>
mysql 自联结
查看>>
mysql union 组合查询
查看>>
socket tcp
查看>>
spiral-matrix-ii &i 生成顺时针序列
查看>>
三大WEB服务器对比分析(apache ,lighttpd,nginx)
查看>>
关于STC单片机的内存管理
查看>>
1025: [SCOI2009]游戏 - BZOJ
查看>>
python set集合方法总结
查看>>
python考点
查看>>
dstat 监控时,无颜色显示
查看>>
CSS3阴影 box-shadow的使用和技巧总结
查看>>
DataMining--Python基础入门
查看>>
单片机复位电路
查看>>