「日常训练」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数组. 分析 这种魔法题目我是同样的没做过. ...
随机推荐
- Telnet配置
一.环境 路由 IP:192.168.56.2 本地云 IP:192.168.56.1 二.认证模式 AAA模式 认证 授权 计费的安全技术 当配置用户界面的认证方式为AAA时, 用户登录设备时需要首 ...
- Lambda使用
说明 本文内容来自 [Java8 In Action] 一书 四种方法引用类型 类型 示例 引用静态方法 ContainingClass::staticMethodName 引用某个对象的实例方法 c ...
- iOS定时器-- NSTimer 和CADisplaylink
iOS定时器-- NSTimer 和CADisplaylink 一.iOS中有两种不同的定时器: 1. NSTimer(时间间隔可以任意设定,最小0.1ms)// If seconds is les ...
- woff字体找不到导致的404错误
在iis中添加mime类型: .woff application/x-font-woff .woff2 application/x-font-woff
- Gradle Goodness: Init Script for Adding Extra Plugins to Existing Projects
Gradle Goodness: Init Script for Adding Extra Plugins to Existing Projects Gradle is very flexible. ...
- java基本方法
Java 方法 在前面几个章节中我们经常使用到 System.out.println(),那么它是什么呢? println() 是一个方法. System 是系统类. out 是标准输出对象. 这句话 ...
- 微信小程序获取手机信息
wx.getSystemInfo({ success: function (res) { console.log(res.model)//手机型号 console.log(res.pixelRatio ...
- unittest单元测试框架之unittest 框架的总结2(八)
unittest 下的属性 1.Unittest.TestCase:所有测试用例类继承的基本类 2.Unittest.main():将一个单元测试模块变为可直接运行的测试脚本 If __name__ ...
- 键盘录入6个int类型的数据存入数组arr中,将arr数组中的内容反转...
一.有一道很有意思的数组操作相关编程题,闲来无事用JS解决了一下,问题描述如下: (1) 键盘录入6个int类型的数据存入数组arr中: (2) 将arr数组中的内容反转: (3) 将反转后的数组角标 ...
- 『ACM C++』 PTA 天梯赛练习集L1 | 042-43
记录刷题情况 ------------------------------------------------L1-042--------------------------------------- ...