HDU5461 Largest Point 思维 2015沈阳icpc
Largest Point
Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 3065 Accepted Submission(s): 1078
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 n integers 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.
3 2 1
1 2 3
5 -1 0
-3 -3 0 3 3
Case #2: 0
#include <map>
#include <set>
#include <stack>
#include <cmath>
#include <queue>
#include <cstdio>
#include <vector>
#include <string>
#include <cstring>
#include <iostream>
#include <algorithm>
#define debug(a) cout << #a << " " << a << endl
#define inf 0x17a6e6736e9
using namespace std;
const int maxn = 5*1e6 + 10;
const int mod = 1e9 + 7;
typedef long long ll;
ll s1[maxn], s2[maxn];
int main() {
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
ll T, t = 0;
cin >> T;
while( T -- ) {
t ++;
ll n, a, b;
cin >> n >> a >> b;
map<ll,ll> mp;
for( ll i = 0; i < n; i ++ ) {
cin >> s1[i];
s2[i] = abs(s1[i]);
mp[s1[i]] ++;
}
sort( s2, s2+n );
sort( s1, s1+n );
ll sum = 0;
if( a > 0 ) {
sum += a*s2[n-1]*s2[n-1];
if( b > 0 ) {
if( mp[-s2[n-1]] ) {
mp[-s2[n-1]] --;
} else {
mp[s2[n-1]] --;
}
if( mp[s1[n-1]] > 0 ) {
sum += b*s1[n-1];
} else {
sum += b*s1[n-2];
}
} else if( b < 0 ) {
if( mp[s2[n-1]] ) {
mp[s2[n-1]] --;
} else {
mp[-s2[n-1]] --;
}
if( mp[s1[0]] > 0 ) {
sum += b*s1[0];
} else {
sum += b*s1[1];
}
}
} else if( a < 0 ) {
sum += a*s2[0]*s2[0];
if( b > 0 ) {
if( mp[-s2[0]] ) {
mp[-s2[0]] --;
} else {
mp[s2[0]] --;
}
if( mp[s1[n-1]] > 0 ) {
sum += b*s1[n-1];
} else {
sum += b*s1[n-2];
}
} else if( b < 0 ) {
if( mp[s2[0]] ) {
mp[s2[0]] --;
} else {
mp[-s2[0]] --;
}
if( mp[s1[0]] > 0 ) {
sum += b*s1[0];
} else {
sum += b*s1[1];
}
}
}
cout << "Case #" << t << ": " << sum << endl;
}
return 0;
}
HDU5461 Largest Point 思维 2015沈阳icpc的更多相关文章
- HDU 5451 Best Solver 数论 快速幂 2015沈阳icpc
Best Solver Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/102400 K (Java/Others)Tota ...
- Largest Point (2015沈阳赛区网络赛水题)
Problem Description Given the sequence A with n integers t1,t2,⋯,tn. Given the integral coefficients ...
- hdu 5444 Elven Postman(二叉树)——2015 ACM/ICPC Asia Regional Changchun Online
Problem Description Elves are very peculiar creatures. As we all know, they can live for a very long ...
- (并查集)Travel -- hdu -- 5441(2015 ACM/ICPC Asia Regional Changchun Online )
http://acm.hdu.edu.cn/showproblem.php?pid=5441 Travel Time Limit: 1500/1000 MS (Java/Others) Memo ...
- (二叉树)Elven Postman -- HDU -- 54444(2015 ACM/ICPC Asia Regional Changchun Online)
http://acm.hdu.edu.cn/showproblem.php?pid=5444 Elven Postman Time Limit: 1500/1000 MS (Java/Others) ...
- 2015 ACM/ICPC Asia Regional Changchun Online HDU 5444 Elven Postman【二叉排序树的建树和遍历查找】
Elven Postman Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)T ...
- 记2017沈阳ICPC
2017沈阳ICPC 10月20日 早上十点抵达沈阳,趁着老师还没到,跑去故宫游玩了一下,玩到一点多回到宾馆,顺便吃了群里大佬说很好吃的喜家德虾饺(真的好好吃),回到宾馆后身体有点不舒服了,头晕晕的, ...
- Minimum Cut(2015沈阳online)【贪心】
Minimum Cut[贪心]2015沈阳online 题意:割最少的边使得图不连通,并且割掉的边中有且仅有一条是生成树的边. 首先,我们选择一条树中的边进行切割,此时仅考虑树上的边集,有两种情况:1 ...
- hdu5461 Largest Point(沈阳网赛)
Largest Point Time Limit: 1500/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total ...
随机推荐
- 【经验分享】ASP.NET 的 Page_Load 执行了2次,真的!
发现问题 这是来自一位网友的提问: 本着求真务实的态度,我打开了 AppBoxPro 项目,本地调试果然发现 Page_Load 进入了两次! 其实在没测试之前,我就有了大概的方向,因为AppBoxP ...
- LR有的JMeter也有之二“检查点”
好吧!接着上一篇文章的内容和思路,继续前进. 检查点:简单的来理解一下,上一章讲到,我们对用户名和密码进行了参数化,那么怎样来判断jmeter有没有正确调用test.dat里面的文件呢.当然,我们可以 ...
- RocketMQ中Broker的HA策略源码分析
Broker的HA策略分为两部分①同步元数据②同步消息数据 同步元数据 在Slave启动时,会启动一个定时任务用来从master同步元数据 if (role == BrokerRole.SLAVE) ...
- cdh5-MariaDB 配置(暂未排版)
在多数分布MariaDB的设施默认设置使用保守的缓冲区的大小和内存使用. 使用保守的缓冲区大小和内存使用率 Cloudera的数据库管理服务器,监控活动,报告管理,Cloudera 导航,Hive 的 ...
- vue组件传值之$attrs、$listeners
当有父组件A,子组件B,孙子组件C的时候 A-B B-C 的传值想必大家应该都非常熟悉了,通过props和$emit和$on来进行传值 那么A-C之间的传值要怎么做呢? 1.event.bus总线传值 ...
- lxml解析网页
目录 1. 什么是lxml 2. 初次使用 3. xpath 3.2 标签定位 3.3 序列定位 3.4 轴定位 4. 实例 1. 什么是lxml lxml是干什么的?简单的说来,lxml是帮助我们解 ...
- 使用pandoc简单教程
使用pandoc作为过滤器 {#step-4-using-pandoc-as-a-filter} 类型 pandoc 并按Enter键.你应该看到光标就在那里,等着你输入一些东西.输入: Hello ...
- R语言中如何找出在两个数据框中完全相同的行(How to find common rows between two dataframe in R?)
I would like to make a new data frame which only includes common rows of two separate data.frame. ex ...
- web项目jsp中无法引入js问题
https://blog.csdn.net/C1042135353/article/details/80274685#commentBox 这篇文章超赞的,几个小时的时间看了这篇文章豁然开朗,瞬间懂了 ...
- 关于c++中的复合类型
目录 数组 字符串 结构体 共用体 枚举 指针 数和指针的关系 常见的存储方式 数组替代品 一.数组 存储在每个元素中值的类型 数组名 数组中的元素数 通用格式:typename arrayname ...