hdu 5461 Largest Point
Thinking about it:
对于式子 a * ti * ti + b * tj,可以看作时有两部分构成 a * ti * ti 和 b * tj,如果整个式子要最大,则要求这两部分都要尽量大。那么再读入数据 t 时,那么就可以构造两个数组,一个存储a * ti * ti ,另一个存储 b * tj。在选取时就产生了两种方案:
1. 先选取 a * ti * ti 最大的,接着再 i != j 的基础上, 选择 b * tj 最大的。
2. 先选取 b * tj 最大的,接着再 i != j 的基础上, 选择 a * ti * ti 最大的。
可以算出两种情况下的值,比较大小三即可。
PS:
最开始我的办法是求出 t 中的 最大值,绝对值最大值,最小值,绝对值最小值,根据a,b正负等情况分类讨论。就运算时间上,这种方法一般会更快点,不过要把情况仔细。
Code:
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int MAXN = 5 * 10e6 +50;
LL N, a, b;
LL sub_a[MAXN], sub_b[MAXN]; LL way(LL first[], LL second[]) {
LL ans = (LL)MAXN * MAXN * -1;
int pos;
for (int i = 0; i < N; ++i) {
if (first[i] > ans) {
ans = first[i];
pos = i;
}
}
LL maxC = (LL)MAXN * MAXN * -1;
for (int i = 0; i < N; ++i) {
if (second[i] > maxC && i != pos) {
maxC = second[i];
}
}
return ans + maxC;
} int Case = 0;
void work() {
cin >> N >> a >> b;
LL tmp;
for (int i = 0; i < N; ++i) {
cin >> tmp;
sub_a[i] = tmp * tmp * a;
sub_b[i] = tmp * b;
}
cout << "Case #" << (++Case) << ": " << max(way(sub_a, sub_b), way(sub_a, sub_b)) << endl;
} int main() {
ios::sync_with_stdio(false);
cin.tie(0);
int T;
cin >> T;
while (T --) {
work();
}
return 0;
}
hdu 5461 Largest Point的更多相关文章
- 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
Largest Point Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others) To ...
- hdoj 5461 Largest Point
Largest Point Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- HDU 1506 Largest Rectangle in a Histogram (dp左右处理边界的矩形问题)
E - Largest Rectangle in a Histogram Time Limit:1000MS Memory Limit:32768KB 64bit IO Format: ...
- HDU 1506 Largest Rectangle in a Histogram set+二分
Largest Rectangle in a Histogram Problem Description: A histogram is a polygon composed of a sequenc ...
- hdu 1506 Largest Rectangle in a Histogram 构造
题目链接:HDU - 1506 A histogram is a polygon composed of a sequence of rectangles aligned at a common ba ...
- HDU 2870 Largest Submatrix (单调栈)
http://acm.hdu.edu.cn/showproblem.php? pid=2870 Largest Submatrix Time Limit: 2000/1000 MS (Java/Oth ...
- HDU 1506 Largest Rectangle in a Histogram(区间DP)
题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1506 题目: Largest Rectangle in a Histogram Time Limit: ...
随机推荐
- Application Loader下载安装和上传IOS app程序
如果您安装了最新版的XCode开发环境.对于在4.2及以上版本,Developer/Applications/Utilities目录中已经有ApplicationLoader程序,无需执行以下单独安装 ...
- Docker容器的网络连接
Docker容器的网络连接 Docker容器的网络连接 我们用ifconfig命令来查看网络设备 我们可以看到上面有个叫docker0的网络设备,docker守护进程就是通过docker0为docke ...
- Facebook React Native 配置小结
2015 年 9 月 15 号,React Native for Android 发布.至此,React 基本完成了对多端的支持.基于 React / React Native 可以: H5, And ...
- oracle 取头十条数据
select * from(select * from table order by age)where rownum < 11
- 得到IP包的数据意义(简单实现例子)
#include <stdio.h> #include <unistd.h> #include <linux/if_ether.h> #include <li ...
- SQL Server 一些重要视图2
1. sys.dm_tran_session_transactions 为每一个没有关闭的事务返回一行.session_id 可以与sys.dm_exec_connections.session_id ...
- PHP面向对象编程学习之对象基础
php虽然是一门学习起来非常简单的语言,但是这门语言也包含了对面向对象编程的支持.尤其是随着php5的发布,php对面向对象的支持有了很大的进步.最近学习了一下php的面向对象编程,不禁感慨,面向对象 ...
- Cpp again
1,
- openNebula images
- 如何显示Mac OS X上的隐藏文件和文件夹
显示隐藏文件以及文件夹命令: defaults write com.apple.finder AppleShowAllFiles YES Mac显示隐藏文件 对于OS X Mavericks 10.9 ...