题意与分析

一开始以为是一条高深的数学题,跳过去了,后来查其他题目的代码的时候无意看到,一看emmmmmm

稍微思考一下就有了。\(1=\frac{1}{3}+\frac{1}{3}+\frac{1}{3}=\frac{1}{2}+\frac{1}{3}+\frac{1}{6}=\frac{1}{2}+\frac{1}{4}+\frac{1}{4}\)。那么是不是只有这三种?这个问题就要靠整数数论来解答了。

以下是证明过程:

先考察\(a<b<c\)的情况,显然有\(a\ge 2\)。

考虑\(a\ge 3\),从而有\(\frac{1}{a}+\frac{1}{b}+\frac{1}{c} \le \frac{1}{3}+\frac{1}{4}+\frac{1}{5} = \frac{47}{60} < 1\),不合题意,舍去。

故\(a=2\)。

接下来考虑b。显然有\(\frac{1}{b}+\frac{1}{c}=\frac{1}{2}\)。

假设\(b\ge 4\),有\(\frac{1}{b}+\frac{1}{c} \ge \frac{1}{4}+\frac{1}{5} = \frac{9}{20} < \frac{1}{2}\),故\(b=3\)。

在这种情况下,\(a,b,c\)仅有一组解。

考察\(a=b=c\)的情况,有一组解。

考察\(a=b\ne c\)的情况,通过类似的证明,可以得到另一组解(简要证明:分为两种情况,\(a<c\)和\(a>c\)来讨论)。

当然了,这些对数论大手子都是在脑子里过一遍就有了简单的一腿,也就我们这种弟弟会写个半天。

注意到\(T \le 10^6\),注意关掉流同步/C-style io。

代码

#include <iostream>
#include <algorithm>
using namespace std;
typedef long long ll; int main()
{
ios::sync_with_stdio(false);
cin.tie(0); cout.tie(0);
int T; cin>>T;
while(T--)
{
int n;
cin>>n;
ll a,b,c;
ll ans=0;
if(n%3==0)
{
a=b=c=n/3;
ans=max(ans,a*b*c);
}
if(n%2==0 && n%3==0)
{
a=n/2;b=n/3;c=n/6;
ans=max(ans,a*b*c);
}
if(n%4==0)
{
a=b=n/4;c=n/2;
ans=max(ans,a*b*c);
}
if(ans==0) cout<<-1<<endl;
else cout<<ans<<endl;
}
}

「日常训练」Maximum Multiple(HDU-6298)的更多相关文章

  1. 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)

    题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...

  2. 「日常训练」 神、上帝以及老天爷 (HDU 2048)

    题意 数论中的错排问题.记错排为Dn" role="presentation">DnDn,求Dnn!" role="presentation&q ...

  3. 「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045)

    题目简述 有排成一行的n" role="presentation">nn个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何 ...

  4. 「日常训练」 Fire!(UVA-11624)

    与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...

  5. 「日常训练」COMMON 约数研究(HYSBZ-1968)

    题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...

  6. 「日常训练」Mike and Feet(Codeforces Round #305 Div. 2 D)

    题意 (Codeforces 548D) 对一个有$n$个数的数列,我们要求其连续$x(1\le x\le n)$(对于每个$x$,这样的连续group有若干个)的最小数的最大值. 分析 这是一道用了 ...

  7. 「日常训练」 Mike and Fun (CFR305D2B)

    题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...

  8. 「日常训练」Common Subexpression Elimination(UVa-12219)

    今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...

  9. 「日常训练」Magic Stones(CodeForces-1110E)

    题意 给定两个数组c和t,可以对c数组中的任何元素变换\(c_i\)​成\(c_{i+1}+c_{i-1}-c_i\)​,问c数组在若干次变换后能否变换成t数组. 分析 这种魔法题目我是同样的没做过. ...

随机推荐

  1. [USACO07DEC]Sightseeing Cows

    嘟嘟嘟 这题好像属于01分数规划问题,叫什么最优比率生成环. 题目概括一下,就是求一个环,满足∑v[i] / ∑c[i]最大. 我们可以堆上面的式子变个型:令 x = ∑v[i] / ∑c[i],则x ...

  2. 刷题防止Time Limit Exceeded(TLE)技巧

    1.C++ 不要使用cin,cout,该使用scanf和printf 2.Java 不要使用Scanner,改用BufferedReader 3.Python 在文件开始的地方加入 import ps ...

  3. caffe 学习(3)——Layer Catalogue

    layer是建模和计算的基本单元. caffe的目录包含各种state-of-the-art model的layers. 为了创建一个caffe model,我们需要定义模型架构在一个protocol ...

  4. PAT——1010. 一元多项式求导

    设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与 ...

  5. 自己封装了的AlertController

    一直觉得使用系统这个东西写起来特别麻烦,每次都要写一大推东西,还是重复的,今天抽了点时间自己重新封装了一下,解决了自己的强迫症...,不多说,直接上代码了. 1.自己定义了一个名为XBZ的UIAler ...

  6. angular动态绑定样式以及改变UI框架样式的方法

    一:angular动态绑定样式 举个栗子: <tr *ngFor="let dataTr of tableData;let i = index" [formGroupName ...

  7. 洛谷P4525 【模板】自适应辛普森法1(simpson积分)

    题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛. 输入输出格式 输入格式: 一行,包含6个实数a,b,c,d,L,R 输出格式: 一行,积分值,保留至小数点后 ...

  8. Zabbix——创建网络配置模板

    前提条件: Zabbix版本为4.0 创建网络配置模板: Template Net Network Generic Device SNMPv2 h3c Template Module EtherLik ...

  9. es6新特性之 class 基本用法

    javaScript 语言中,生成实例对象的传统方法是通过构造函数,与传统的面向对象语言(比如 C++ 和 Java)差异很大,ES6 提供了更接近传统语言的写法,引入了 class(类)这个概念,作 ...

  10. 【Spark】Spark核心之弹性分布式数据集RDD

    1. RDD概述 1.1 什么是RDD (1) RDD(Resilient Distributed Dataset)弹性分布式数据集,它是Spark的基本数据抽象,它代表一个不可变.可分区.里面的元素 ...