HDU 5461:Largest Point
Largest Point
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 1102 Accepted Submission(s): 429
Given the integral coefficients a and b.
The fact that select two elements ti and tj of A and i≠j to
maximize the value of at2i+btj,
becomes the largest point.
indicating there are T test
cases.
For each test case, the first line contains three integers corresponding to n (2≤n≤5×106), a (0≤|a|≤106) and b (0≤|b|≤106).
The second line contains nintegers t1,t2,⋯,tn where 0≤|ti|≤106 for 1≤i≤n.
The sum of n for
all cases would not be larger than 5×106.
For each test case, you should output the maximum value of at2i+btj.
2 3 2 1
1 2 3 5 -1 0
-3 -3 0 3 3
Case #1: 20
Case #2: 0
题意给了a b的两个值,然后给了一大堆t的值,问在这些t的值里面求最大的 at2i+btj.
分情况讨论,对于a大于零小于零,b大于零小于零。然后记录最大值 次大值 最小值 次小值 还有一个绝对值最小值,这五个值就够用了。
代码:
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; long long test, n, a, b;
long long i, j;
long long abs_min, max1, max2, min1, min2; int main()
{ long long temp;
cin >> test;
for (i = 1; i <= test; i++)
{
abs_min = 1000005;
max1 = -1000005;
max2 = -1000005;
min1 = 1000005;
min2 = 1000005; cin >> n >> a >> b; for (j = 1; j <= n; j++)
{
scanf("%lld",&temp); if (abs(temp) < abs_min)
{
abs_min = abs(temp);
}
if (temp > max1)
{
max2 = max1;
max1 = temp;
}
else if (temp > max2)
{
max2 = temp;
} if (temp < min1)
{
min2 = min1;
min1 = temp;
}
else if (temp < min2)
{
min2 = temp;
}
}
long long res;
if (a >= 0 && b>=0)
{
res = a*max1* max1 + b*max2;
res = max(res, a*min1 * min1 + b*max1);
}
else if (a >= 0 && b <= 0)
{
res = a*max1 * max1 + b*min1;
res = max(res, a*min1 * min1 + b*min2);
}
else if (a <= 0 && b <= 0)
{
if (min1 == abs_min)
{
res = a*abs_min*abs_min + b*min2;
}
else
{
res = a*abs_min*abs_min + b*min1;
}
}
else
{
if (max1 == abs_min)
{
res = a*abs_min*abs_min + b*max2;
}
else
{
res = a*abs_min*abs_min + b*max1;
}
}
cout << "Case #"<<i<<": "<<res<< endl;
} return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
HDU 5461:Largest Point的更多相关文章
- LeetCode之“排序”:Largest Number
题目链接 题目要求: Given a list of non negative integers, arrange them such that they form the largest numbe ...
- HDU - 6409:没有兄弟的舞会(数学+思维)
链接:HDU - 6409:没有兄弟的舞会 题意: 题解: 求出最大的 l[i] 的最大值 L 和 r[i] 的最大值 R,那么 h 一定在 [L, R] 中.枚举每一个最大值,那么每一个区间的对于答 ...
- POJ 3321:Apple Tree + HDU 3887:Counting Offspring(DFS序+树状数组)
http://poj.org/problem?id=3321 http://acm.hdu.edu.cn/showproblem.php?pid=3887 POJ 3321: 题意:给出一棵根节点为1 ...
- hdu 5461 Largest Point 暴力
Largest Point Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid= ...
- hdu 5461(2015沈阳网赛 简单暴力) Largest Point
题目;http://acm.hdu.edu.cn/showproblem.php?pid=5461 题意就是在数组中找出a*t[i]*t[i]+b*t[j]的最大值,特别注意的是这里i和i不能相等,想 ...
- hdu 5461 Largest Point
Thinking about it: 对于式子 a * ti * ti + b * tj,可以看作时有两部分构成 a * ti * ti 和 b * tj,如果整个式子要最大,则要求这两部分都要尽量大 ...
- HDU 5510:Bazinga(暴力KMP)
http://acm.hdu.edu.cn/showproblem.php?pid=5510 Bazinga Problem Description Ladies and gentlemen, p ...
- HDU 2732:Leapin' Lizards(最大流)
http://acm.hdu.edu.cn/showproblem.php?pid=2732 题意:给出两个地图,蜥蜴从一个柱子跳跃到另外一个地方,那么这个柱子就可能会坍塌,第一个地图是柱子可以容忍跳 ...
- HDU 4289:Control(最小割)
http://acm.hdu.edu.cn/showproblem.php?pid=4289 题意:有n个城市,m条无向边,小偷要从s点开始逃到d点,在每个城市安放监控的花费是sa[i],问最小花费可 ...
随机推荐
- DatePicker和DataPickerDialog以及AutoCompleteTextView的基本使用方法
1.DatePicker和DatePickerDialog的基本使用方法: main.xml: <?xml version="1.0" encoding="utf- ...
- 「NOIP2009」靶形数独
传送门 Luogu 解题思路 这题其实挺简单的. 首先要熟悉数独,我们应该要优先搜索限制条件多的行,也就是可能方案少的行,显然这样可以剪枝,然后再发挥一下dfs的基本功就可以了. 细节注意事项 爆搜题 ...
- Python 绘图
python绘图库有很多,底层的就是matplotlib,另外还有基于matplotlib的更方便,代码可读性更强的库,比如seaborn.plotnine等.各个库之间的对比: https://ww ...
- 做一个php登陆页面,用pc登陆和用手机登陆弹出来的登陆页面不一样。
<?phpheader('Content-Type:text/html; charset=UTF-8');//定义页面编码为utf8$is_pc = (strpos($agent, 'windo ...
- Servlet 3.0 新特性概述
Servlet 3.0 新特性概述 Servlet 3.0 作为 Java EE 6 规范体系中一员,随着 Java EE 6 规范一起发布.该版本在前一版本(Servlet 2.5)的基础上提供了若 ...
- poj1703 Find them, Catch them(种类并查集
题目地址:http://poj.org/problem?id=1703 题目大意:警察抓了n个坏蛋,这些坏蛋分别属于龙帮或蛇帮.输入m个语句,A x y询问x和y的关系(在一个帮派,不在,不能确定), ...
- docker-jenkins SSH Publishers时踩的坑
source相对路径问题,不是 /var/jenkins_home/workspace/build-renren/target/renren-fast.war 或环境变量,而是 target/re ...
- L2-012. 关于堆的判断(最小堆)
将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: “x is the root”:x是根结点: “x and y are siblings”:x和y ...
- vscode点击ctrl键报错Request textDocument/definition failed.
现象 用vscode写java代码的时候突然出现,修复问题点击Ctrl时,输出窗口就打日志,报错Request textDocument/definition failed. 我百度唯一的有用线索就是 ...
- 运行自己的 DaemonSet【转】
本节以 Prometheus Node Exporter 为例演示如何运行自己的 DaemonSet. Prometheus 是流行的系统监控方案,Node Exporter 是 Prometheus ...