「日常训练」Maximum Multiple(HDU-6298)
题意与分析
一开始以为是一条高深的数学题,跳过去了,后来查其他题目的代码的时候无意看到,一看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)的更多相关文章
- 「日常训练」ZgukistringZ(Codeforces Round #307 Div. 2 B)
题意与分析(CodeForces 551B) 这他妈哪里是日常训练,这是日常弟中弟. 题意是这样的,给出一个字符串A,再给出两个字符串B,C,求A中任意量字符交换后(不限制次数)能够得到的使B,C作为 ...
- 「日常训练」 神、上帝以及老天爷 (HDU 2048)
题意 数论中的错排问题.记错排为Dn" role="presentation">DnDn,求Dnn!" role="presentation&q ...
- 「日常训练」 不容易系列之(3)—— LELE的RPG难题 (HDU 2045)
题目简述 有排成一行的n" role="presentation">nn个方格,用红(Red).粉(Pink).绿(Green)三色涂每个格子,每格涂一色,要求任何 ...
- 「日常训练」 Fire!(UVA-11624)
与其说是训练不如说是重温.重新写了Java版本的代码. import java.util.*; import java.math.*; import java.io.BufferedInputStre ...
- 「日常训练」COMMON 约数研究(HYSBZ-1968)
题意与分析 感谢https://www.cnblogs.com/Leohh/p/7512960.html的题解.这题话说原来不在我的训练范围,正好有个同学问我,我就拿来做做.数学果然不是我擅长的啊,这 ...
- 「日常训练」Mike and Feet(Codeforces Round #305 Div. 2 D)
题意 (Codeforces 548D) 对一个有$n$个数的数列,我们要求其连续$x(1\le x\le n)$(对于每个$x$,这样的连续group有若干个)的最小数的最大值. 分析 这是一道用了 ...
- 「日常训练」 Mike and Fun (CFR305D2B)
题意(CodeForces 548B) 每次对01矩阵中的一位取反,问每次操作后,单列中最长连续1的长度. 分析 非常非常简单,但是我当时训练的时候WA了四次...无力吐槽了,人间 不值得.jpg 代 ...
- 「日常训练」Common Subexpression Elimination(UVa-12219)
今天做的题目就是抱佛脚2333 懂的都懂. 这条题目干了好几天,最后还是参考别人的代码敲出来了,但是自己独立思考了两天多,还是有收获的. 思路分析 做这条题我是先按照之前的那条题目(The SetSt ...
- 「日常训练」Magic Stones(CodeForces-1110E)
题意 给定两个数组c和t,可以对c数组中的任何元素变换\(c_i\)成\(c_{i+1}+c_{i-1}-c_i\),问c数组在若干次变换后能否变换成t数组. 分析 这种魔法题目我是同样的没做过. ...
随机推荐
- [USACO07DEC]Sightseeing Cows
嘟嘟嘟 这题好像属于01分数规划问题,叫什么最优比率生成环. 题目概括一下,就是求一个环,满足∑v[i] / ∑c[i]最大. 我们可以堆上面的式子变个型:令 x = ∑v[i] / ∑c[i],则x ...
- 刷题防止Time Limit Exceeded(TLE)技巧
1.C++ 不要使用cin,cout,该使用scanf和printf 2.Java 不要使用Scanner,改用BufferedReader 3.Python 在文件开始的地方加入 import ps ...
- caffe 学习(3)——Layer Catalogue
layer是建模和计算的基本单元. caffe的目录包含各种state-of-the-art model的layers. 为了创建一个caffe model,我们需要定义模型架构在一个protocol ...
- PAT——1010. 一元多项式求导
设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为n*xn-1.) 输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数).数字间以空格分隔. 输出格式:以与 ...
- 自己封装了的AlertController
一直觉得使用系统这个东西写起来特别麻烦,每次都要写一大推东西,还是重复的,今天抽了点时间自己重新封装了一下,解决了自己的强迫症...,不多说,直接上代码了. 1.自己定义了一个名为XBZ的UIAler ...
- angular动态绑定样式以及改变UI框架样式的方法
一:angular动态绑定样式 举个栗子: <tr *ngFor="let dataTr of tableData;let i = index" [formGroupName ...
- 洛谷P4525 【模板】自适应辛普森法1(simpson积分)
题目描述 计算积分 结果保留至小数点后6位. 数据保证计算过程中分母不为0且积分能够收敛. 输入输出格式 输入格式: 一行,包含6个实数a,b,c,d,L,R 输出格式: 一行,积分值,保留至小数点后 ...
- Zabbix——创建网络配置模板
前提条件: Zabbix版本为4.0 创建网络配置模板: Template Net Network Generic Device SNMPv2 h3c Template Module EtherLik ...
- es6新特性之 class 基本用法
javaScript 语言中,生成实例对象的传统方法是通过构造函数,与传统的面向对象语言(比如 C++ 和 Java)差异很大,ES6 提供了更接近传统语言的写法,引入了 class(类)这个概念,作 ...
- 【Spark】Spark核心之弹性分布式数据集RDD
1. RDD概述 1.1 什么是RDD (1) RDD(Resilient Distributed Dataset)弹性分布式数据集,它是Spark的基本数据抽象,它代表一个不可变.可分区.里面的元素 ...